Indy TIdTCPClient是否适合本地TCP/IP连接?

Hol*_*rwa 0 delphi indy delphi-2009 indy10

我需要使用TCP/IP连接连接到本地网络上的设备.当我使用TIdTCPClient时,一切正常,除了一件事:

如果连接不可用,则在超时之前大约需要18-20秒.无论我设置什么值,ConnectTimeout属性都没有效果.在超时之前总是花费相同的时间.

这个答案提到超时的延迟时间很长,我想知道这是否与Indy组件有关?

我必须找出连接是否不能很快建立,让我们说最多在1秒内.

有没有办法使用Indy做到这一点,还是我需要使用不同的组件/不同的方法?

(我使用的是Delphi 2009附带的Indy 10版本)

编辑:
我按照说明将Indy升级到这篇文章中的最新版本.

仍然相同,它现在始终需要22秒,直到TCPClient.Connect在没有连接时返回.ConnectTimeout和/或ReadTimeout似乎对此没有影响.

Gre*_*ndt 5

ConnectTimeout适用于2010和XE.也许您可以将Indy版本更新为最新版本(免费版).我有一个"快速检查"连接功能,只是为了检查设备的可用性,这些超时是5秒没有问题(2010年和XE).