找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 6762|回复: 16

如何通过ACE检测客户端已经断线??急!!!

[复制链接]
发表于 2008-6-17 11:30:29 | 显示全部楼层 |阅读模式
大家好,我是做服务器的。代码是以前的主程写的,现在他不在我们公司干了,他使用了ACEA,对于ACE,我是一点都不明白。郁闷,他说ACE会自动检测客户端是否断线了。我不知道他是怎么实现的,请问有人知道么??或者说有别的办法代替么??
发表于 2008-6-17 11:58:53 | 显示全部楼层
通行的办法是心跳包来检测。TCP链接断开,是不会自动通知给程序的。
 楼主| 发表于 2008-6-17 12:08:44 | 显示全部楼层

回复 #2 winston 的帖子

谢谢,因为我刚入行不久。不大明白您说的是什么意思。您能具体的说说看么??
 楼主| 发表于 2008-6-17 12:14:46 | 显示全部楼层
用心跳包的话,会有一段时间的过程,总觉得不是很好,反应有些慢了。。。。
发表于 2008-6-17 13:58:10 | 显示全部楼层
TCP的设计就是这样,可以参考相关的理论,因为检查断线要消耗网络资源,TCP意外断线,是不会通知你的。所以要自己做。想实时检测,是需要花费代价的。
 楼主| 发表于 2008-6-17 15:11:29 | 显示全部楼层

回复 #5 winston 的帖子

恩,谢谢,我明白了,不过我还想问问,除了心跳包的话,还有其他更好的办法么??
发表于 2008-6-17 21:03:29 | 显示全部楼层
没有,至少我没听说过。
发表于 2008-6-18 15:07:10 | 显示全部楼层
关注...我也需要解决这个问题...
目前客户端有 close()函数调用...服务器端可以接收到客户端断开的消息...
但是...如果客户端非正常退出的话...服务器就没办法挨了...
发表于 2008-6-18 15:23:22 | 显示全部楼层
尽量友好的处理链接的关闭,这个很重要。
在异常断开的时候,要有判断的办法。
发表于 2008-6-20 16:16:05 | 显示全部楼层
还是心跳包比较实用:) :)
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-9 15:17 , Processed in 0.018844 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表