Libcurl - CURLMOPT_TIMERFUNCTION - 它有什么用?

Libcurl - CURLMOPT_TIMERFUNCTION - what is it for?

请告诉我,我只是想不通 CURLMOPT_TIMERFUNCTION 参数的用途。

是的,我当然阅读了关于 CURLMOPT_TIMERFUNCTION 的完整描述:

CURLMOPT_TIMERFUNCTION

timer_callback

hiperfifo

而且我仍然不明白他做了什么以及为什么要通缉他。 例如:

Certain features, such as timeouts and retries, require you to call libcurl even when there is no activity on the file descriptors.

Your callback function timer_callback should install a non-repeating timer with an expire time of timeout_ms milliseconds. When that timer fires, call either curl_multi_socket_action or curl_multi_perform, depending on which interface you use.

我不明白为什么我应该从 CURLMOPT_TIMERFUNCTION 回调中调用 curl_multi_socket_action() 并且不是来自事件回调?

这是为了让 curl 在请求没有得到及时答复时采取行动。您需要定期回调 curl,以便它进行内部管理。

假设您发出了 curl 请求,curl 对其执行了操作,但当时无法连接。 Curl 无法挂起等待连接的进程,因此它 returns 将控制权交给您,并依赖于您将控制权返回给 curl 以检查它是否可以定期连接。