问题:客户端和服务器建立起TCP连接后,如果双方长时间不进行通信,会出现什么情况?如何保证连接的存活? 分析:在实际现实中,建立起长连接后客户端可很意外失联的情况,这些TCP连接并未来得及正常释放,长时间的积累会导致非常多的半打开连接,造成资源浪费,也有可能一个正常的请求得不到正常的返回。所以服务器端就有了TCP的Keepalive机制。 * 如上图所示,长时间不通信,服务端会给客户端发送一个TCP Keep-Alive来查看客户端是否还存活,如果客户端没有应答,服务端超时没有收到回复就会再次重新发送;连续发送三次后,服务端都没有收到应答,服务端就会主动断开连接。