【发布时间】:2019-06-26 07:01:27
【问题描述】:
我的开发组织有自己的线程和 select() 包装器实现。应用程序需要增强以执行 HTTPS 请求,我决定使用 libcurl。经过一番研究,我发现 curl_easy_perform 是一个阻塞调用,所以我决定将 curl_multi_perform 方法用于非阻塞调用,以允许线程中的其他工作。
HTTPS 请求需要定期对同一 URL 执行。我知道我可以保留相同的 curl_easy 句柄并将其提供给 curl_multi 句柄。我会执行 curl_multi_perform 来获得结果,但我稍后需要使用 curl_multi_perform 重新发送请求,比如说在 5 分钟内。 因此,这将是使用相同的简单句柄的连续请求。但是,我不确定 curl_easy 接口如何告诉多接口在我收到第一个请求的结果后何时重新发送请求。我该如何做到这一点?
(也许从多句柄中删除简单句柄,并在再次需要请求时将其重新添加到多句柄?)
我假设无论使用什么技术,传出请求都将使用相同的传出端口。
【问题讨论】:
标签: c++ multithreading libcurl