首页 > 解决方案 > 当以太网连接/断开连接时,C# 服务器套接字绑定/重新绑定端点

问题描述

背景: 我有一socket台服务器绑定到机器 NIC 上的特定 IP 地址。如果NIC 连接到客户端计算机,这可以正常工作。不过,我遇到的问题是一个错误场景,如果 NIC 未连接到客户端计算机,则会引发以下错误:“ the requested address is not valid in its context”。这是有道理的,因为由于没有连接,所以无法分配 IP 地址。

问题: 如何重新绑定 NIC,socket以便在 NIC 物理连接到客户端计算机后,socket开始侦听?请注意,当我重新启动程序时,它会正确绑定并且一切都很好。不过,我希望能够重新启动socket/ 重新绑定而不必重新启动程序。

服务器套接字连接:如果确定套接字未绑定(在后台服务中完成),我已经有代码每 X 秒调用一次连接。当我调用重新连接方法(如下所示)时,我仍然收到错误消息。

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));

标签: c#tcp.net-coreserversocket

解决方案


推荐阅读