我需要使用 TCP/IP 连接连接到本地网络上的设备。当我使用 TIdTCPClient 时,一切正常,除了一件事:
如果连接不可用,大约需要 18-20 秒才能超时。无论我设置什么值,属性 ConnectTimeout 都不起作用。在超时之前总是需要相同的时间。
这个答案提到了超时的长时间延迟,我想知道这是否与 Indy 组件有关?
我必须找出连接是否不能很快建立,比如说最多在 1 秒内。
有没有办法使用 Indy 来做到这一点,还是我需要使用不同的组件/不同的方法?
(我使用的是 Delphi 2009 附带的 Indy 10 版本)
编辑:
我按照这篇文章中的说明将 Indy 升级到最新版本。
还是一样,现在在没有连接时 TCPClient.Connect 返回始终需要 22 秒。ConnectTimeout 和/或 ReadTimeout 似乎对此没有影响。