背景:
我有一台socket
服务器,该服务器绑定到计算机NIC上的特定IP地址。 如果将NIC连接到客户端计算机,这可以正常工作。但是,我遇到的是一个错误方案,如果NIC未连接到客户端计算机,则会引发以下错误:“ the requested address is not valid in its context
”。这是有道理的,因为因为没有连接,所以无法分配IP地址。
问题:
如何重新绑定socket
,以便NIC物理连接到客户端计算机后,socket
就开始侦听?请注意,当我重新启动程序时,它可以正确绑定并且一切都很好。不过,我希望能够重新启动socket
/重新绑定而不必重新启动程序。
服务器套接字连接: 我已经有代码,如果确定套接字未绑定(在后台服务中完成),则每隔X秒会重新调用一次连接。当我调用reconnect方法(如下所示)时,仍然出现错误。
var listeningSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
listeningSocket.SetSocketOptions(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
// exception thrown here if NIC is not physically connected
//
listeningSocket.Bind(new IPEndPoint(address, port));