エラー60: TCPリスナを作成関数から60秒間エラーが発生のはなぜですか?

更新しました Sep 17, 2019

使用製品

ソフトウェア

  • LabVIEW Full

問題

TCPポートにリスナを作成するプログラムがあります。接続が閉じたら、新しいリスナを作成します。新しいリスナを開く前に元のリスナIDがTCP接続を閉じる関数に渡された場合でも、VIは数秒間エラー60(指定されたネットワークアドレスは現在使用中)を返します。

解決策

この問題は、通信ごとに1つの リスナ を作成するのではなく、1つの ポート につき プログラム が参照するべき1つのリスナを作成する事で回避することができます。接続は開閉するとしても、リスナは再利用される可能性がある場合は同じものを使用します、従って、TCPリスナを作成関数をループの外側に配置することにより、この現象は改善されます。


追加情報

データ通信>>プロトコル>>TCPパレットにあるTCPリスンVIは、特定のポートにリスナがすでに存在するかどうかを検出し、既存のリスナを自動的に再利用します。
 

オペレーティングシステム(OS)が異なれば、SO_REUSEADDRなどのポート構成に対する応答が異なるため、この問題は一部のOSでは発生しない場合があります。リスナの作成を正しく使用すると、余分な待機時間が回避されます。