質問

TCP / IP接続を使用して、ローカルネットワーク上のデバイスに接続する必要があります。 TIDTCPClientを使用すると、一つのことを除いて、すべてがうまくいきます。

接続が利用できない場合は、タイムアウトが得られる前に約18~20秒かかります。 Property ConnectTimeoutは、どの値が設定されていても効果がありません。タイムアウトの前に常に同じ時間がかかります。

この回答タイムアウトの長い遅延時間を表し、そして私はそれがIndyコンポーネントに関連しているのか疑問に思う?

私は接続が非常に早く確立できないかどうかを調べなければなりません、それは最大で1秒以内に言ってみましょう。

indyを使ってこれを行う方法はありますか、それともさまざまなコンポーネント/異なるアプローチを使用する必要がありますか?

(私はDelphi 2009に同梱されているIndy 10バージョンを使っています)

edit
このポスト

まだ同じで、接続がない場合にTCPClient.Connectが返すまで、22秒かかります。 ConnectTimeoutおよび/またはReadTimeoutはこれに影響を与えないようです。

他のヒント

ConnectTimeoutは、2010とXEに対して正しく機能します。おそらくあなたはあなたのインディーバージョンを最新の(無料)に更新することができます。デバイスの可用性を確認するためだけに「クイックチェック」を接続する関数があります(2010年とXEの両方で)。

デフォルトのTCPクライアント接続タイムアウト(特に設定されていない)と読み取りタイムアウト、Delphi 2010と最新のインディバージョンを使用した読み出しタイムアウト、ローカル接続(ホスト名としてLOCALHOSTを使用して)タイムアウトします。だからこれは間違いなくDelphi / Indyの問題ではありません。BTW、これは私にEIDSOCKEERROR( "ソケットエラー#10061接続が拒否されました)。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top