200分够吗?菜鸟认为很高难的问题:我使用了clientsocket和serversocket两个控件做程序,当客户端连接和断开连接服务器上都可以看的出来,这个

  • 主题发起人 主题发起人 苦命的人
  • 开始时间 开始时间
那么怎么让服务器自己知道哪个客户端30秒没有给自己发数据了呢??

用什么方法呢?
 
还是用timer定时扫描吧!
 
你把SCKTSRVR.EXE的超时时间设置成60秒,然后你的客户端每隔30秒调用一个服务器端的一个方法就行了,这个服务器端的方法可以什么都不做。
原理是:
如果客户端异常断开了,就不会调用服务器端的方法了,也就是不活动了,如果超过60秒,SCKTSRVR.EXE就自动把它踢下去了。
 
好难呀,有谁知道,也告诉我一声吧
 
win2000下你拨掉网线,它的本地连接马上就有反应
 
看来本菜鸟的问题也是众位高手的难题啊,看来我也要步入高手的行列了,谁能解决啊?
真正的网络高手在哪啊?
 
一般来说,做网络即时通讯程序都有一个称为“心跳”的问题,也就是说,为保持正常连接,客户端一般都必须定时向服务器发送一个简单的数据包,以表明自己仍在线上,这个称为“心跳”。如果服务程序在某时间周期内收不到客户端的心跳包,那便认为客户端已离线,QQ就是这样的原理来判断是否在线的!那么楼主的程序应该加上这个心跳协议处理方可解决问题。
 
我也明白是这样的原理,可是想不出怎么判断在一个周期内判断客户端没有发信的代码??
我到可以用数据库来实现,但好象就麻烦了,有谁有好的方法??
 
留个邮箱我给你发一段程序吧!
 
终于盼到了高手:oracle@mail.china.com

急切盼望着。
 
解决办法很多,看你的具体应用,有的时候根本什么都可以不做就可以发现死连接
有的时候需要发空闲包,有的时候需要轮训所有用户列表。总之和具体应用是捆在
一起的。
答案是:制订一个完善的通讯协议就可以避免这类问题[:D]
 
张无忌大侠,对菜鸟来说编协议太困难了,只要能解决现在的问题就行了,帮忙啊!!!
 
IE中只能打开首页,无法打开任何下一级链接是怎么回事。
 
没有异常可以抓吗?
 
光说不练是假把势,道理谁都明白,哪位高手能把代码给我看看。


另外彭荣全大侠,我的信箱还没有看到您的代码啊?????
 
既然你明白道理,写出代码就应该不是难事,
我认为大家都说的很清楚了,具体就需要你自己去实现了,
大家只是帮你出主意,不是你手下的程序员,没必要帮你
做着做那.
 
张大侠说的有理,都是我的错,一直以为这对大侠们不是难事,所以出了200分,以为肯定能得到解决,没想到,不过菜鸟是真做不出来。没有办法,再等等吧。
 
我的也有错!
我也很郁闷!!

就在这里:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2102086
 
我发到你邮箱一段程序,看看对你有帮助吗?
 
多人接受答案了。
 
后退
顶部