声明

  1. int closesocket_callback(void *clientp, curl_socket_t item);
  2. CURLcode curl_easy_setopt(CURL *handle, CURLOPT_CLOSESOCKETFUNCTION, closesocket_callback);

概要

替换关闭套接字函数的回调。

详情

传入一个指向你的回调函数的指针,该函数应该匹配上面显示的原型。

当套接字被关闭的时候(不是其它类型的文件描述符),libcurl会调用这个回调函数,而不是调用closeclosesocket。这基本上是CURLOPT_OPENSOCKETFUNCTION选项的反过程。返回0来标识成功,如果有错误的话返回1。

clientp指针通过CURLOPT_CLOSESOCKETDATA来设置。item是libcurl想要关闭的套接字。

备注

  • 如果使用了multi接口,必须确保这个回调在multi句柄销毁之前一直有效。因为multi接口的连接池会接管套接字的生命周期,即使在easy句柄销毁之后,由它创建的套接字仍然可能存在。

默认值

默认情况下,libcurl使用标准的套接字关闭函数。

适用协议

所有协议。

可用性

在7.21.7加入。

返回值

如果支持该选项,返回CURLE_OK,否则返回CURLE_UNKNOWN_OPTION