gpt4 book ai didi

c++ - cURL - 多 - 打开的套接字太多

转载 作者:太空宇宙 更新时间:2023-11-04 11:47:55 27 4
gpt4 key购买 nike

我对 cURL 有疑问。我使用了启用流水线的 curl_multi(服务器支持它)。但是我有超过 10000 个单个 URL,我需要下载。我没有那么多空闲 socket 。如何处理?

我已经阅读了关于curl_multi_socket_action的内容,但是我找不到一些简单的例子,或者如何修改我的代码

CURLM * curlm = curl_multi_init();

curl_multi_setopt(curlm, CURLMOPT_MAXCONNECTS, 3);
curl_multi_setopt(curlm, CURLMOPT_PIPELINING, 1);

std::vector<CURL_WRITE *> ptrArray;

std::map<MyStringAnsi, MyStringAnsi>::const_iterator it;
for (it = data[0].begin(); it != data[0].end(); it++)
{
CURL_WRITE * curlData = new CURL_WRITE;
curlData->dataIndex = &(it->first);
curlData->threadID = 0;


CURL * curl = InitSingleCURL(it->first, curlData);
curl_multi_add_handle(curlm, curl);

ptrArray.push_back(curlData);
curls.push_back(curl);
}


int still_running = 0;
/* lets start the fetch */
do
{

while(curl_multi_perform(curlm, &still_running) == CURLM_CALL_MULTI_PERFORM);
#ifdef _WIN32
Sleep(10);
#else
usleep(10);
#endif
} while (still_running);

最佳答案

首先,您并没有真正解释太多,这让回答变得非常困难。多界面不会强制您一次进行所有传输。

CURLMOPT_MAX_TOTAL_CONNECTIONS可能是你想要的,在 libcurl 7.30.0 中添加。

关于c++ - cURL - 多 - 打开的套接字太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19344095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com