我正在尝试重新连接到一个已经断开连接的套接字,但出于某种原因它不允许这样做,即使我使用参数"reuseSocket"将Disconnect方法调用设置为true。
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_socket.Connect(ipAddress, port);
//...receive data
_socket.Disconnect(true); //reuseSocket = true
//...wait
_socket.Connect(ipAddress, port); //throws an InvalidOperationException:
一旦socket断开连接,你只能异步重新连接到不同的EndPoint。必须在等待操作完成之前不退出的线程上调用BeginConnect。
我做错了什么?
Disconnect
,而是将其包装在using
中。此外,调用Shutdown
。 - usr