首页 新闻 会员 周边

服务器怎么判断客户端socket是否已断开连接

0
悬赏园豆:5 [待解决问题]

客户端连上来的时候我保存了客户端的socket对象,现在想定时判断客户端已断开

拖鞋王子的主页 拖鞋王子 | 初学一级 | 园豆:37
提问于:2012-10-05 13:38
< >
分享
所有回答(1)
1

一般都是心跳包,超时没收到回应,就认为客户端就是断开了。

zsounder | 园豆:2819 (老鸟四级) | 2012-10-05 14:49

现在客户端是做了心跳包,我是想有没有办法服务器自己去判断

支持(0) 反对(0) 拖鞋王子 | 园豆:37 (初学一级) | 2012-10-05 14:51

@拖鞋王子: 心跳是双方的,服务端自己判断有一定的局限性。

1:通过SO_KEEPALIVE来判断,默认是2小时进行一次检测,自己也可以设置检测间隔,但会影响其它系统所有正在使用的Socket,慎用

2:通过SIO_KEEPALIVE_VALS,该选项不同于SO_KEEPALIVE 机制的就是它是针对单个连接的,对系统其他的Sokcet并不影响。

支持(0) 反对(0) zsounder | 园豆:2819 (老鸟四级) | 2012-10-05 14:52
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册