在同一端口上支持IPv6和IPv4的C#服务器

Chr*_*ini 4 c# ipv4 ipv6

是否可以使用侦听和接受IPv6和IPv4客户端的Socket?我在C#中使用了IPv6套接字,希望它能自动向后兼容,但IPv4客户端会导致无效的IP地址异常.

小智 6

将套接字的IPv6Only选项设置为false

Socket MySocket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
MySocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
Run Code Online (Sandbox Code Playgroud)

(取自 Matthew Iselin 的第二个链接)


Mat*_*lin 5

看看这里.您可以使用一个服务器套接字接受IPv4客户端以及IPv6客户端.