client经常由于各种原因与server失去联系,server端需要比较快的知道,然后采取相应的措施。
诸位大侠在实际中是如何解决这个问题的?

解决方案 »

  1.   

    在OnConnect为每个连接设置readtimeout,如果超时就断开
    AThread.Connection.ReadTimeout:=5000//5秒
      

  2.   

    To getit911,您的例子是server读不到数据超过5s就断开。可是server和client连接后,什么也不做,没有读client数据的事情呀
      

  3.   

    在OnExecute消息中写
    sleep(100);
    AThread.Connection.CheckForGracefulDisconnect();
    什么都不做?那要这个程序干什么?
      

  4.   

    这个好像不能达到哪个目的?
    现在我的一个server有十个client,server等待和接受client发的数据。client不一定什么时候发,也不一定发多少。server应该知道哪个client断线了,要把这个client的IP记录下来,而且这个处理时间不能太长,因为client给server发数据的话,server必须立刻迅速响应,如果sleep(100)后再响应接受client的数据,那太漫长了,client无法忍受。
      

  5.   

    To:net_morning(矿泉水) 
        能否把你的代码给我发一份过来,我研究一下如何解决?[email protected]
      

  6.   

    To:net_morning(矿泉水) 
     “server应该知道哪个client断线了” :能不能考虑用多线程呢?
     “把这个client的IP记录下来”:定义一个String变量就是了。