2012-08-09 62 views
0

我正在使用TcpClient與硬件設備進行通信。 作爲測試過程的一部分,與設備的通信可能會持續30秒左右。這很好,有時候是有意的。TcpClient重新連接到已經打開的連接

問題在通信中斷時向設備發送數據時開始。因爲我正在使用TcpClient,所以我得到一個IO異常,並且連接被刪除。儘管如此,設備端的連接仍然是開放的。 我該怎麼做:

  • 重新連接到設備的開放連接?創建一個新的TcpClient將創建在設備側新的連接,是不需要...
  • 也許會讓TCP重傳需要更長的時間然後30秒?(Windows 7)中

回答

0

你的最好的方法是交換會話標識符或有其他方式來跟蹤連接並有代碼來處理簡歷。您可以增加您的SendTimeout Property的值,但接收端仍然可能最終會阻止連接。

一旦關閉了TcpClient,就無法重新打開特定的連接。唯一的另一種方法可能會做到這一點(原始套接字代碼)在我看來,比它的價值更麻煩。