C#UDP服务器多个实例IPv6同一端口



我需要使用.NET的UDPClient类,需要多个UDP服务器。对于IPv4,我可以通过以下操作来实现这一目标:

var udpServer1 = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 53));
var udpServer2 = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.2"), 53));
var udpServer3 = new UdpClient(new IPEndPoint(IPAddress.Parse("127.0.0.3"), 53));

它有效,我可以在端口53上的所有3个地址上聆听。我需要为IPv6做同样的事情。但是看来我只能在1个回环地址" :: 1"。

如果我尝试使用" :: 2",我会得到"请求的地址在其上下文中无效"错误。任何帮助将不胜感激。

谢谢!

因此,在进行了更多调查之后,我发现确实,IPv6只有1个回环地址:" :: 1"。

但是!有一个叫做"链接本地"地址的小东西,始于" fe80:...",而您的每个网络适配器中有1个,代表该特定网络适配器的回环地址。<<<<<<<<<<<<<<<</p>

所以,我可以在:: 1端口53上打开服务器,也可以打开多个服务器,一个用于每个网络适配器的服务器。

最新更新