当以太网连接/断开连接时,C#服务器套接字绑定/重新绑定端点

时间:2018-10-20 01:51:36

标签: c# tcp .net-core serversocket

背景: 我有一台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));

0 个答案:

没有答案