当前位置: 技术问答>linux和unix
socket 断开
来源: 互联网 发布时间:2016-08-02
本文导语: 我写的socket的服务器段如果断开我客户端该怎么知道,这个socket 以断开了,我应该怎么判断,如果客户端断开连接了我该怎么判断,这个地方该怎么做,我客户端的功能就是,如果socket断开连接,就从新开始连接,...
我写的socket的服务器段如果断开我客户端该怎么知道,这个socket 以断开了,我应该怎么判断,如果客户端断开连接了我该怎么判断,这个地方该怎么做,我客户端的功能就是,如果socket断开连接,就从新开始连接,一直能连接为止
|
这个帖子里讨论的问题和你问的意义
http://topic.csdn.net/u/20090722/10/a6eefc97-48c0-4296-8466-f791b9519033.html
http://topic.csdn.net/u/20090722/10/a6eefc97-48c0-4296-8466-f791b9519033.html
|
catch异常,然后尝试重新连接。
|
两种比较明显的方法:
1、如果有heart beat机制,当beat发过去一段时间,一定次数而没有收到ack,就可以认为是断掉了
2、如果没有heart beat机制,当你尝试在那个socket上读写的时候,会有RST,这个时候就是连接断掉了
1、如果有heart beat机制,当beat发过去一段时间,一定次数而没有收到ack,就可以认为是断掉了
2、如果没有heart beat机制,当你尝试在那个socket上读写的时候,会有RST,这个时候就是连接断掉了
|
正常的关断是可以控制的,主要是异常的判断,比如客户端突然崩溃或者下线,客户方的路由器等OVER,线路故障,这个只有用心跳了。没有心跳机制,基本上是不能完全控制的。