【协议森林】Linux下socket编程KEEPALIVE使用与原理1.简介2.keepalive机制3.抓包分析4.部分代码5.加入讨论
1.简介在实际项目开发中,TCP连接关闭主要有两种情况:1、连接正常关闭,调用close() 、shutdown()连接优雅关闭,send与recv立马返回错误;2、连接的对端异常关闭,比如拔掉网线网络断掉,突然断电。面对上述问题,通常都要检测对端是否处于连接中,主要有两种方法:1、编写心跳包程序,简单的说就是自己的程序加入一条线程,定时向对端发送数据包,查看是否有ACK,根据ACK的返回情况来管理连接。此方法比较通用,一般使用业务层心跳处理,灵活可控,但改变了现有的协议;2、使用TCP的