0

TcpClientを使用して、ハードウェアデバイスと通信しています。テストプロセスの一環として、デバイスへの通信が30秒ほど停止する場合があります。これは問題なく、時には意図されたものです。

通信がダウンしているときにデバイスにデータを送信すると、問題が発生します。TcpClientを使用しているため、IO例外が発生し、接続が切断されます。ただし、デバイス側の接続はまだ開いています。どうやって:

  • デバイスで開いている接続に再接続しますか?新しいTcpClientを作成すると、デバイス側で新しい接続が作成され、不要になります...
  • おそらく、TCPの再送信に30秒以上かかるようにしますか?(Windows7)
4

1 に答える 1

0

あなたの最善の方法は、セッション識別子を交換するか、接続を追跡する他の方法を用意し、再開を処理するコードを用意することです。SendTimeout プロパティの値を増やすことはできますが、受信側で接続がタイムアウトする可能性があります。

TcpClient を使用して特定の接続を閉じると、その接続を再度開くことはできません。これを行う他の唯一の方法 (生のソケット コード) は、価値があるよりも面倒なように思えます。

于 2012-08-09T16:58:51.773 に答える