ChannelOption.SO_LINGER參數對應於套接字選項中的SO_LINGER,Linux內核默認的處理方式是當用戶調用close()方法的時候,函數返回,在可能的情況下,儘量發送數據,不一定保證會發送剩餘的數據,造成了數據的不確定性,使用SO_LINGER可以阻塞close()的調用時間,直到數據完全發送
關閉Socket的延遲時間。值含義如下:
-1:
表示socket.close()方法立即返回,但OS底層會將發送緩衝區的數據全部發送到對端。0:
表示socket.close()方法立即返回,OS放棄發送緩衝區的數據直接向對端發送RST
包,對端收到復位錯誤。非0整數值:
表示調用socket.close()方法的線程被阻塞直到延遲時間到或發送緩衝區中的數據發送完畢,若超時,則對端會收到復位錯誤。
默認值:
默認值爲-1,表示禁用該功能