我们的系统要用到IdTCPClient和IdTCPServer实现通信功能,所有的功能都基本实现,程序的大致功能是这样:
1、窗体上能显示当前在线用户,只要有人进入或退出就会自动刷新在线人名
2、不同的客户端可以实现发送消息
3、服务器端有绝对控制权可以断开所有用户的连接,也可以发消息给所有人
但现在,这样两个严重问题:
1、IdTCPClient端异常断开的时候IdTCPServer端就判断不了,判断不了也就没有办法刷新人名了
2、IdTCPClient端正常断开的时候只要人数过多,IdTCPServer端也会出现判断不了的情况,IdTCPServer的OnDisconnect事件不就是当客户端退出的时候用的吗?为什么会出现这种情况呢?大家帮帮忙,给点解决方法或技术意见,谢谢各位!!

解决方案 »

  1.   

    1。要求客户端间隔发送确认信息
    或者
    2。服务端主动发送信息要求客户端回答
      

  2.   

    大哥给点具体实现的代码好不好!谢谢了!
      

  3.   

    不会吧~~直接要代码??定一个客户端、服务端之间的协议。不要看到协议就觉得很高深,只是为了将特定信息与一般信息区分开来;比如客户端间隔发送确认信息的简单协议:客户端间隔发送一个“1234”到服务端,服务端收到这个信息就认为客户端在线,如果一段时间后没有收到“1234”,就认为客户端异常推出了