标签:模式 会话 recv 连接 端口和协议 通过 拔网线 阻塞 一个
【前提】客户端采用tcp阻塞模式【原因】(个人理解)每一个节点(包括服务器、客户端、中间节点)都应该会用一个五元组(源IP、源端口、目的IP、目的端口和协议)来纪录一个tcp会话,哪一个节点出现网络波动,那么该节点的纪录就会被清空。所以网络恢复后,服务器端(相机)发来的数据就不会到达客户端,客户端则一直阻塞在recv函数。
【解决方案】
1、换成非阻塞模式;
2、阻塞+保活。
这样,就可以利用函数返回值来判断是否需要重连了。
【bug-004】【tcp】网络断开重连后,客户端recv函数一直阻塞,不会返回
标签:模式 会话 recv 连接 端口和协议 通过 拔网线 阻塞 一个
原文地址:https://blog.51cto.com/2820302/2453878