PHP curl 超時時間設定

2021-07-30 05:50:54 字數 785 閱讀 2348

curlopt_timeout好理解,就是整個curl請求過程(http request & response)的超時限制,以秒為單位,設定為0則無限制。 

curlopt_connecttimeout比較難理解,目前確認的是,這是curl請求過程中的一小部分,因此必須要設得比curlopt_timeout小,不然curlopt_timeout無意義。網上的資料是這麼說的:

curlopt_connecttimeout 在發起連線前等待的時間,如果設定為0,則無限等待。

這個發起連線前等待的時間比較模糊,我傾向於這指的是完成tcp三次握手過程前所耗費的時間,或者換句話說,tcp三次握手的整個過程必須要在curlopt_connecttimeout內完成,否則就超時。tcp三次握手無法在指定時間內完成表示伺服器正處在繁忙/奔潰的狀態或網路異常,這正符合本文所提到的場景。 

基於這一猜想下,我把curlopt_connecttimeout設成3秒:

curl_setopt($curl_handle, curlopt_connecttimeout, 3);

如此,就不需要在網路抖動的時候等待2分鐘(sdk設定的curlopt_connecttimeout是120秒)才報錯了。

設定ssh超時時間

方法一 最近公司剛剛買了一台hyper v的vps,但是連線ssh伺服器剛剛離開一會就斷開,不得不需要反覆連線伺服器,為了使ssh伺服器可以保持足夠的連線時間,大家可以按以下方法設定 基於安全的理由,如果使用者連線到 ssh server 後閒置,ssh server 會在超過特定時間後自動終止 s...

ssh設定超時時間

ssh連線超時問題解決方案 1.修改server端的etc ssh sshd config clientaliveinterval 60 server每隔60秒傳送一次請求給client,然後client響應,從而保持連線 clientalivecountmax 3 server發出請求後,客戶端沒...

Retrofit 設定 超時時間

在 中,通過retrofit框架傳送請求去呼叫其他系統中的 rest 介面時,正常情況下,都沒有啥問題。但是今天碰到乙個問題是,在傳送乙個請求時,過了10秒鐘之後,系統就報sockettimeout這個異常。每次報這個異常的時候都是10秒鐘的時候報的。既然超時時間這麼有規律,那麼,肯定是在哪邊設定了...