当前位置: 首页>>代码示例>>C++>>正文


C++ Proxy::set_port方法代码示例

本文整理汇总了C++中Proxy::set_port方法的典型用法代码示例。如果您正苦于以下问题:C++ Proxy::set_port方法的具体用法?C++ Proxy::set_port怎么用?C++ Proxy::set_port使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Proxy的用法示例。


在下文中一共展示了Proxy::set_port方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char **argv) {
    int ret;
    URL url;
    Downloader downloader;
    Task task;
    Proxy proxy;
    char *ptr = NULL;
    // init_config
    // parse arguments
    // parse url
    // ftp or http ?
    // new download thread

    signal(SIGPIPE, SIG_IGN);
#ifdef HAVE_SSL
    SSL_load_error_strings();
    SSLeay_add_ssl_algorithms();
#endif

    while (1) {
        int option_index = 0;

        ret = getopt_long(argc, argv, short_options,
                long_options, &option_index);
        if (ret == -1) break;

        switch (ret) {
            case 'b':
                global_debug = true;
                break;
            case 'c':
                task.tryCount = atoi(optarg);
                break;
            case 'd':
                task.set_local_dir(optarg);
                break;
            case 'f':
                task.set_local_file(optarg);
                break;
            case 'h':
                print_help();
                return 0;
                break;
            case 'i':
                task.retryInterval = atoi(optarg);
                break;
            case 'n':
                task.threadNum = atoi(optarg);
                break;
            case 'r':
                task.set_referer(optarg);
                break;
            case 't':
                task.timeout = atoi(optarg);
                break;
            case 'v':
                cout << "Mytget " VERSION << endl;
                return 0;
            case 'x':
                ptr = StrDup(optarg);
                break;
            case 'H':
                task.set_host(optarg);
                break;
            case '?':
            default:
                print_help();
                return -1;
        }
    }

    if (ptr == NULL) {
        ptr = StrDup(getenv("proxy"));
    }
    if (ptr) {
        if (url.set_url(ptr) < 0) {
            delete[] ptr;
            cerr << "!!!Please check your http_proxy set" << endl;
            print_help();
            return -1;
        }
        delete[] ptr;
        if (url.get_protocol() != HTTP) {
            cerr << "!!!The proxy type is not supported" << endl;
            return -1;
        }
        proxy.set_type(HTTP_PROXY);
        proxy.set_host(url.get_host());
        proxy.set_port(url.get_port());
        proxy.set_user(url.get_user());
        proxy.set_password(url.get_password());
        task.proxy = proxy;
    }

    if (optind >= argc) {
        print_help();
        return -1;
    }

    while (optind < argc) {
//.........这里部分代码省略.........
开发者ID:richard-liang,项目名称:mytget,代码行数:101,代码来源:mytget.cpp


注:本文中的Proxy::set_port方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。