TCP开启KeepAlive保活机制,通过解析TCP报文flag判断长连接的状态。
TCP保活机制
TCP server或TCP client一方开启便可开启其TCP的长连接保活机制。
本例子说明:
TCP server在虚拟机,TCP client在主机;
TCP server和TCP client通过VMnet8网卡进行通信;
TCP server未开启保活机制,TCP client开启保活机制。
code
TCP server
1 | import socket |
TCP client
1 | import socket |
Wireshark报文捕获及解析
server socket正常关闭:
server socket异常关闭:
server socket异常断线:
长连接状态的检测及处理
通过解析TCP报文判断socket的连接状态,并执行相应的操作。
代码逻辑如下:
1 | 开启TCP主动长连接并设置保活机制的线程1,线性执行,连接成功则结束,因连接失效再次触发; |