0

我在 C++ 中使用 CURL Multi API。

目前,我将提供给它的处理程序的数量限制在 5 个,因此我必须等到它们全部完成,直到我可以提供另外 5 个处理程序。

我希望能够检测处理程序何时完成,处理数据,然后生成下一个处理程序以放入新空间。

是否可以在运行时将处理程序传递给 Multi API?

4

1 回答 1

1

是否可以在运行时将处理程序传递给 Multi API?

是的。

一旦curl_multi_info_read返回带有CURLMSG_DONE标志的消息,您就可以:

  1. 通过检索相应的简易句柄msg->easy_handle
  2. 检查传输是否正常,并根据响应执行您想要的操作,
  3. 删除这个简单的手柄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);
于 2013-10-09T07:36:04.080 回答