2012-08-09 88 views
0

我正在使用TcpClient与硬件设备进行通信。 作为测试过程的一部分,与设备的通信可能会持续30秒左右。这很好,有时候是有意的。TcpClient重新连接到已经打开的连接

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

  • 重新连接到设备的开放连接?创建一个新的TcpClient将创建在设备侧新的连接,是不需要...
  • 也许会让TCP重传需要更长的时间然后30秒?(Windows 7)中

回答

0

你的最好的方法是交换会话标识符或有其他方式来跟踪连接并有代码来处理简历。您可以增加您的SendTimeout Property的值,但接收端仍然可能最终会阻止连接。

一旦关闭了TcpClient,就无法重新打开特定的连接。唯一的另一种方法可能会做到这一点(原始套接字代码)在我看来,比它的价值更麻烦。