1
我在程序中使用了一些自動更新功能。如果連接失敗,我希望程序繼續嘗試長達15秒,然後宣佈失敗。爲了實現這一目標,我用下面的curl_easy_setopt
的捲曲容易的選擇:僅在連接失敗時才使libcURL超時
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 15);
但後來我發現,如果下載的時間超過15秒,超時錯誤公佈。
我該如何限制15秒才能發生故障?也就是說,如果15秒沒有連接,
更多信息
我使用的完整選項列表如下:
CURLcode res = curl_easy_perform(curl);
如果:
curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L); //verify ssl peer
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L); //verify ssl hostname
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, CurlWrite_CallbackFunc_StdString);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &s);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, FALSE);
curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, this); //pointer to the current class as it's a GUI program
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, CurlProgress_CallbackFunc_UpdateProgress);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20);
,並調用開始通過做你需要更多的信息,請我知道。
謝謝。
@Eichhörnchen試過了......它沒有這樣做......這顯然只是爲了最初的連接。要清楚,我身體斷開我的互聯網連接,看看是否有影響。 –
@EichhörnchenThis Works!謝謝! –