TcpClient重新连接到已打开的连接

时间:2012-08-09 16:36:45

标签: c# tcpclient

我正在使用TcpClient与硬件设备进行通信。 作为测试过程的一部分,与设备的通信可能会下降30秒左右。这很好,有时是有意的。

当我在通信中断时向设备发送数据时,问题就开始了。因为我正在使用TcpClient,所以我得到一个IO异常并且连接被删除。设备端的连接仍然是打开的。 我怎么能:

  • 重新连接到设备的开放连接?创建一个新的TcpClient将在设备端创建一个新连接,这是不需要的......
  • 也许让TCP重传时间超过30秒?(Windows 7)

1 个答案:

答案 0 :(得分:0)

您最好的方法是交换会话标识符或使用其他方式跟踪连接并使用代码处理简历。您可以增加SendTimeout Property的值,但接收方仍然可能最终在连接上结束连接。

关闭后,您无法重新打开与TcpClient的特定连接。你可能会这样做的另一种方式(原始套接字代码)在我看来比它的价值更麻烦。