linux tcp/udp 客户端、服务端判断连接状态逻辑
经过一番查找总结两种方案
心跳包方式
- 客户端自定义协议包,定时向服务器端发送心跳包;当超时没有收到心跳包则可以判断连接可以关闭。
- 该方式想到一个弊端,就是发送的数据包协议是自定义,实现上面的逻辑比较简单;但是如果是其他非自定义模式
似乎就存在问题,。例如:moubus-TCP协议。
- 该方式想到一个弊端,就是发送的数据包协议是自定义,实现上面的逻辑比较简单;但是如果是其他非自定义模式
socket 发送属性判断
- socket SO_KEEPACTIVE 这个属性进行实现。还没研究过,待更新