0%

libcurl使用中的一些总结

1. 终止一个永远连接的watch线程

不要试图使用pthread_cancel(),会发生资源泄露。

正确的方法是,使用一个加锁的变量,一个线程设置变量为“退出”,另一个Watch线程检查这个变量,然后在本线程内终止curl_easy_perfrom()

2. 如何终止curl_easy_perform()

有两种方法:

第一种 使用过程函数

progress function 如果返回不为0,传输会终止。

参考1

第二种 重新设置超时

首先保存curl_handler

1
curl_easy_setopt(curl_handler, CURLOPT_TIMEOUT_MS, 1)

然后传输就会终止。

参考