代码改变世界

TCP的连接如何知道对方已经异常断开

2015-12-25 22:26  Loull  阅读(1205)  评论(0)    收藏  举报

断电的话,对方不会发送任何数据包过来,包括RST。主机无法得知。
如果是TCP已经连接,有个定时器,会发送空包,sequence number不变。如果一直收不到ack,会断定对方已经无法通信,而释放系统资源。但这个已经很晚了。
第一时间是不可能的准确的,只能武断地认为,应答必须在多少时间内到达,否则以掉线论处。

 

断电和超时是同一个现象。。只能按超时处理

 

用心跳包来检查~