ChannelOption.SO_LINGER

ChannelOption.SO_LINGER參數對應於套接字選項中的SO_LINGER,Linux內核默認的處理方式是當用戶調用close()方法的時候,函數返回,在可能的情況下,儘量發送數據,不一定保證會發送剩餘的數據,造成了數據的不確定性,使用SO_LINGER可以阻塞close()的調用時間,直到數據完全發送

關閉Socket的延遲時間。值含義如下:

  • -1:表示socket.close()方法立即返回,但OS底層會將發送緩衝區的數據全部發送到對端。
  • 0: 表示socket.close()方法立即返回,OS放棄發送緩衝區的數據直接向對端發送RST包,對端收到復位錯誤。
  • 非0整數值:表示調用socket.close()方法的線程被阻塞直到延遲時間到或發送緩衝區中的數據發送完畢,若超時,則對端會收到復位錯誤。

默認值:

默認值爲-1,表示禁用該功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章