我的服务器应用程序使用 TIdTCPServer,几个客户端应用程序使用 TIdTCPClients 连接到服务器(所有计算机都在同一个局域网中)。
一些客户端只需要每隔几分钟与服务器联系一次,其他客户端每秒一次,其中一个大约每秒执行 20 次。
如果我保持客户端和服务器之间的连接打开,我将保存重新连接,但必须检查连接是否丢失。
如果我在每次传输后关闭连接,则每次都必须重新连接,但无需检查连接是否仍然存在。
执行此操作的最佳方法是什么?
一般情况下,我应该以哪种数据传输频率保持连接打开?
这两种情况的其他优点/缺点是什么?
最佳答案
我建议将两者混合使用。当打开一个新连接时,为它启动一个空闲计时器。每当交换数据时,重置定时器。如果计时器超时,则关闭连接(或向客户端发送命令询问它是否希望连接保持打开状态)。如果需要发送数据时连接已经关闭,则重新打开一个连接并重复。这样,不常用的连接可以定期关闭,而更常用的连接可以保持打开状态。
关于delphi - 最佳实践 : Keep TCP/IP connection open or close it after each transfer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5031732/