1. 程式人生 > >java網路程式設計tcp協議之setKeepAlive

java網路程式設計tcp協議之setKeepAlive

keepAlive是socket連線在沒有資料交換時用來探測連線是否存活的一種心跳機制。當然也可以自己實現心跳機制而不使用自帶的功能。

當由於各種問題(在沒有資料交換的情況下由於網路問題或者自身機器問題)導致socket沒有正常關閉時,socket會一直佔用控制代碼,這樣導致了該釋放的資源沒及時釋放。

java 自帶的api沒有提供設定心跳的具體引數:

1、傳送心跳的時間間隔;

2、當未受到心跳的ack訊息時再次傳送心跳的次數與時間間隔;

如果是在linux環境下可通過修改作業系統的配置