[網絡通訊]socket編程相關

1、Nonblock socket發送數據返回-1,errno是ETIMEDOUTsocket

現象:經過poll返加該套節字可讀,但讀取時,返回-1,errno是ETIMEDOUT。tcp

分析:操作系統

一、該套節字主要用來發送,該節點是千兆網卡,發送的流量已近上限。ip

二、該節點的net.ipv4.tcp_reties1與net.ipv4.tcp_retries2設爲3。程序

三、可能底層協議棧發送數據通過3次重試失敗,因此設置了errno爲ETIMEDOUT。數據

注意:協議

一、這時節點關閉該socket,不會向對端發送FIN,形成對端不能發現鏈接已斷開。異常

二、在設置操做系統內核參數時,須要注意,而且服務程序應該經過心跳等機制處理該異常。block

相關文章
相關標籤/搜索