应用层心跳 OR TCP KEEPALIVE?
最近搞网络这块,总结下心跳机制,一般都会在应用层做心跳,而避免适用TCP层的KEEPALIVE,主要因为存在以下缺陷:1,KEEPALIVE的目的是探测连接是否存在,无法检测能不能发送数据,比如服务器由于负载过大到处无法响应请求,应用层的的原因导致数据无法传输,但是连接还是正常的,试问对应用程序来说,是否该判断该连接正常么?2,如果TCP连接的一端断网或者断电,对端的应用层并不知晓,继续发...