我们有一个应用程序,它使用 Delphi 2007 附带的 Indy 10.1.1 组件来监听传入的 TCP 请求。
有时,我们会收到并非来 self 们的客户端应用程序的传入连接。通常,会发生以下两种情况之一:1) 在收到任何数据之前,客户端终止连接,或者 2) 收到我们不期望的数据,并且我们手动终止连接。
但是,我们收到的连接没有收到任何数据,并且似乎一直持续到客户端从其一端终止连接。
如果在指定时间后没有收到数据,是否有办法终止与服务器的此类连接?
最佳答案
在 OnExecute 事件处理程序中,跟踪从客户端接收到最后一次有效数据的时间。使用连接的 ReadTimeout 属性,您可以定期使挂起的读取操作超时,以便您可以检查客户端是否有一段时间没有发送数据,如果是,则断开连接。
关于delphi - 终止来自 TIdTCPServer 的非事件套接字连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376125/