2012-12-12 42 views
3

我在C++中的應用程序(A)使curl調用到另一臺機器來啓動另一個應用程序(B)。 A捲曲調用時,等待B完成它的工作。所以我只想問一下,應用程序A的默認超時是什麼,或者默認情況下是禁用,即無限超時?在C++中使用libcurl進行curl調用的默認超時

回答

7

http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

CURLOPT_CONNECTTIMEOUT

傳遞一個長。它應該包含允許連接到服務器的最長時間爲 秒。此 只限制連接階段,一旦連接,此選項 不再使用。設置爲零以切換到默認內置 連接超時 - 300秒。另請參閱CURLOPT_TIMEOUT選項。

CURLOPT_TIMEOUT

傳遞一個只要含在 您允許的libcurl傳輸操作採取秒的最大時間參數。通常,名稱 查找可能會花費相當長的時間並將操作限制爲少於幾分鐘的風險,從而可能會中止完美的正常操作。此 選項將導致curl使用SIGALRM來啓用超時系統 調用。

在類Unix系統中,這可能會導致信號被使用,除非設置了 CURLOPT_NOSIGNAL。

默認超時爲0(零),這意味着它永遠不會超時。

+0

謝謝,只是爲了清楚我問了一個問題。我在我的代碼中使用了curl_easy_setopt(請求,CURLOPT_URL,「www.example.com」),所以從技術上講,這永遠不會過期,並且會等待來自其他機器上的應用程序B的響應。 – user1755967

+0

在這一行中,你只是讓'libcurl'知道後面要講的URL,在'curl_easy_perform()'調用之前不會發送請求。你應該接受這個答案。 –

相關問題