是否可以拥有一个侦听并接受IPv6和IPv4客户端的Socket?我在C#中使用了IPv6套接字,希望它能自动向后兼容,但IPv4客户端会导致无效的IP地址异常。
答案 0 :(得分:5)
看看here。您可以接受IPv4客户端以及IPv6客户端with the one server socket。
答案 1 :(得分:1)
将套接字的IPv6Only
选项设置为false
:
Socket MySocket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
MySocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
(取自Matthew Iselin的第二个链接)