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