delphi - 最佳实践 : Keep TCP/IP connection open or close it after each transfer?

标签 delphi tcp delphi-2009 indy indy10

我的服务器应用程序使用 TIdTCPServer,几个客户端应用程序使用 TIdTCPClients 连接到服务器(所有计算机都在同一个局域网中)。

一些客户端只需要每隔几分钟与服务器联系一次,其他客户端每秒一次,其中一个大约每秒执行 20 次。

如果我保持客户端和服务器之间的连接打开,我将保存重新连接,但必须检查连接是否丢失。

如果我在每次传输后关闭连接,则每次都必须重新连接,但无需检查连接是否仍然存在。

执行此操作的最佳方法是什么?

一般情况下,我应该以哪种数据传输频率保持连接打开?

这两种情况的其他优点/缺点是什么?

最佳答案

我建议将两者混合使用。当打开一个新连接时,为它启动一个空闲计时器。每当交换数据时,重置定时器。如果计时器超时,则关闭连接(或向客户端发送命令询问它是否希望连接保持打开状态)。如果需要发送数据时连接已经关闭,则重新打开一个连接并重复。这样,不常用的连接可以定期关闭,而更常用的连接可以保持打开状态。

关于delphi - 最佳实践 : Keep TCP/IP connection open or close it after each transfer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031732/

相关文章:

tcp - erlang: gen_tcp:接受限制

Delphi - X个组件后的TScrollBox问题

delphi - Delphi 2009 如何转换 Delphi 7 项目重新构建配置

windows - 通过 GetModuleHandle/LoadLibrary 和使用 FreeLibrary 加载 DLL

database - 在不同表中使用相同字段名称的问题,特别是ID

tcp - 如何指定 OpenMPI 使用的端口范围?

delphi - Delphi 泛型中的多态性

delphi - 如何在运行时将资源提取到文件中?

delphi - 将一组项目添加到 list 框中并在之后读取值

按名称的android tcp连接