这个文档是小编在curl官网上使用谷歌翻译翻译的,详细信息看官网
描述
这是关于如何在 C 程序中使用 libcurl 共享接口的概述。这里提到的每个函数都有特定的手册页。
共享接口中的所有函数都以 curl_share 为前缀。
特性
添加了共享接口以启用 curl“句柄”之间的数据共享。
一组数据 - 多次传输
您可以让多个简单句柄在它们之间共享数据。让他们更新并使用相同的cookie 数据库、DNS 缓存、TLS 会话缓存和/或连接缓存!这样,每次传输都将利用其他传输进行的数据更新。
分享对象
使用步骤:
1、使用curl_share_init创建一个共享对象。它返回一个新创建的句柄。
2、使用curl_share_setopt告诉共享对象您希望它共享哪些数据。
3、由于数据是共享的,而libcurl内部没有线程同步,因此为了防止发生多个线程同事修改数据的情况,我们需要设置锁。可以使用curl_share_setopt设置锁定和解锁功能。
4、使用curl_easy_setopt设置CURLOPT_SHARE选项,并传入共享句柄。可以使任意数量的简单句柄共享同一个共享句柄。
5、当我们想停止使用该特定共享的时候,可以使用 curl_easy_setopt设置CURLOPT_SHARE 设置为 NULL 以获得该简单句柄。要使句柄停止共享特定数据,您可以CURLSHOPT_UNSHARE它。
6、使用完共享后,请确保没有简单的句柄仍在使用它,并在句柄上调用curl_share_cleanup。