java socket引數詳解 KeepAlive

2021-06-04 18:20:34 字數 730 閱讀 7510

keepalive不是說tcp的常連線,當我們作為服務端,乙個客戶端連線上來,如果設定了keeplive為true,當對方沒有傳送任何資料過來,超過乙個時間(看系統核心引數配置),那麼我們這邊會傳送乙個ack探測包發到對方,探測雙方的tcp/ip連線是否有效(對方可能斷點,斷網)。如果不設定,那麼客戶端宕機時,伺服器永遠也不知道客戶端宕機了,仍然儲存這個失效的連線。

當然,在客戶端也可以使用這個引數。

客戶端socket會

每隔段的時間(大約兩個小時)就會利用空閒的連線向伺服器傳送乙個資料報。這個資料報並沒有其它的作用,只是為了檢測一下伺服器是否仍處於活動狀態。如果伺服器未響應這個資料報,在大約11

分鐘後,客戶端socket

再傳送乙個資料報,如果在12

分鐘內,伺服器還沒響應,那麼客戶端socket

將關閉。如果將socket

選項關閉,客戶端socket

在伺服器無效的情況下可能會長時間不會關閉。

儘管keepalive的好處並不多,但是很多開發者提倡在更高層次的應用程式**中控制超時設定和死的套接字。同時需要記住,keepalive不允許你為探測套接字終點(endpoint)指定乙個值。所以建議開發者使用的另一種比keepalive更好的解決方案是修改超時設定套接字選項

說白了:這個引數其實對應用層的程式而言沒有什麼用。可以通過應用層實現了解服務端或客戶端狀態,而決定是否繼續維持該socket。

java socket引數詳解 KeepAlive

keepalive不是說tcp的常連線,當我們作為服務端,乙個客戶端連線上來,如果設定了keeplive為true,當對方沒有傳送任何資料過來,超過乙個時間 看系統核心引數配置 那麼我們這邊會傳送乙個ack探測包發到對方,探測雙方的tcp ip連線是否有效 對方可能斷點,斷網 如果不設定,那麼客戶端...

k交叉驗證詳解

重點放在前面 n折交叉驗證有兩個用途 模型評估 模型選擇。n折交叉只是一種劃分資料集的策略。想知道它的優勢,可以拿它和傳統劃分資料集的方式進行比較。它可以避免固定劃分資料集的侷限性 特殊性,這個優勢在小規模資料集上更明顯。把這種策略用於劃分訓練集和測試集,就可以進行模型評估 把這種策略用於劃分訓練集...

rsync引數詳解

選項說明 v,verbose 詳細模式輸出 q,quiet 精簡輸出模式 c,checksum 開啟校驗開關,強制對檔案傳輸進行校驗 a,archive 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性,等於 rlptgod r,recursive 對子目錄以遞迴模式處理 r,relative ...