首先,調用函數curl_global_init()來初始化庫函數;記得最後調用curl_global_cleanup()來釋放庫資源。其次,調用curl_easy_init()來初始化一個句柄,得到一個easy interface型指針;curl_easy_init函數是線程相關的,也就是說不能在一個線程中調用另外一個線程通過curl_easy_init建立的CURL指針。
記得最後要調用curl_easy_cleanup(easy interface);接着,再調用curl_easy_setopt來設定将要通路的網絡位址。curl_easy_perform來執行下載下傳。
注意的是:libcurl的全局初始化必須放線上程之外。
1、函數
CURLcode curl_easy_setopt(CURL *handle, CURLoption option, parameter);
CURLOPT_WRITEFUNCTION //設定回調函數
回調函數原型為: size_t function( void *ptr, size_t size, size_t nmemb, void *userp);函數将在libcurl接收到資料後被調用。
void *ptr是下載下傳回來的資料.
void *userp是使用者指針,使用者通過這個指針傳輸自己的資料。
CURLOPT_WRITEDATA
設定回調函數中的void *userp指針的來源。
CURLOPT_URL
設定通路的URI。
CURLOPT_TIMEOUT
逾時時間。
CURLOPT_CONNECTIONTIMEOUT
連接配接等待時間。
CURLOPT_RANGE
斷點續傳,指定傳輸分片,格式:"0-200"
示例代碼1

View Code
示例代碼2

參考
[1]http://curl.haxx.se/libcurl/c/multithread.html
[2]http://blog.csdn.net/aaa20090987/article/details/7955918
[3]http://hi.baidu.com/445920201/item/99401f1674bf4b5e2a3e22b4
[4]http://blog.chinaunix.net/uid-20692625-id-3203258.html