在Delphi中检测TCP连接/断开连接

Moh*_*mad 1 delphi networking tcp indy delphi-7

我的应用程序有一个包含StringGrid的服务器表单.服务器只允许一次连接4个客户端.当列表未满时,它将从客户端添加任何tcp连接.

当新客户端从服务器请求TCP连接并且列表已满时,服务器应检查此列表中的客户端以查看它们是否仍然连接.如果客户端仍然连接且列表已满,请拒绝新客户端.如果不再连接一个或多个客户端,请接受新客户端,将其添加到列表并更新列表.

如何知道客户是否仍然连接?

Rem*_*eau 6

在新客户端想要连接时,您不应该检查死客户端.您应该将服务器的MaxConnections属性设置为4,以防止列表已满时新连接,无论已连接客户端的状态如何,然后在使用协议级心跳或tcp级别keepalive连接时定期检查死客户端.如果心跳/保持活动错误或超时,请断开该客户端并将其从列表中删除,从而允许新客户端进行连接.

  • 他们在连接后断开连接但您想将它们留在列表中?这没有多大意义.请更新您的问题以清除服务器的实际要求. (4认同)