gpt4 book ai didi

delphi - 如何处理网络丢失和 Indy IdTCPServer

转载 作者:可可西里 更新时间:2023-11-01 02:30:59 27 4
gpt4 key购买 nike

我已经使用 IdTCPServer 组件创建了一个客户端/服务器应用程序。客户端连接并在应用程序的整个生命周期中保持持久连接。如果网络连接断开(这种情况经常发生,因为客户端使用无线无线网卡连接),客户端将自动重新连接。这一切都很好。

我的问题是处理服务器上与丢失连接对应的套接字。他们不会检测到网络中断并自行断开连接。在阅读了几篇相关文章后,我了解到服务器无法知道连接是否断开。它必须等待某个事件才能发现这一点。

所以我的问题是,我是否应该在我的服务器中构建某种机制来定期“处理”连接断开的套接字?如果是这样,怎么办?我认为一种方法是循环遍历所有连接并尝试向它们发送数据。我发现这会触发所需的“事件”。

最佳答案

某种心跳或 ping 信号,从客户端定期发送到服务器,可以用来保持服务器端 session 的事件。如果信号停止,并且超时间隔过去,服务器可以假定客户端已丢失连接。

(如果服务器简单地使用套接字连接将数据发送回客户端,服务器无法知道客户端是否收到了数据。数据可能在中间的某个地方。)

关于delphi - 如何处理网络丢失和 Indy IdTCPServer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343844/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com