[网络通讯]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

相关文章
相关标签/搜索