我在 C++ 中使用 CURL Multi API。
目前,我将提供给它的处理程序的数量限制在 5 个,因此我必须等到它们全部完成,直到我可以提供另外 5 个处理程序。
我希望能够检测处理程序何时完成,处理数据,然后生成下一个处理程序以放入新空间。
是否可以在运行时将处理程序传递给 Multi API?
是否可以在运行时将处理程序传递给 Multi API?
是的。
一旦curl_multi_info_read
返回带有CURLMSG_DONE
标志的消息,您就可以:
msg->easy_handle
curl_multi_remove_handle
然后,您可以使用 为您的多手柄添加另一个手柄curl_multi_add_handle
。
大多数情况下,最好的方法是在简单的句柄上执行 a curl_easy_reset
,然后再次添加它:
curl_multi_remove_handle(multi_handle, easy_handle);
curl_easy_reset(easy_handle);
// here re-configure your handle for the next transfer (CURLOPT_URL, etc)
// ...
curl_multi_add_handle(multi_handle, easy_handle);