【发布时间】:2010-11-20 03:12:48
【问题描述】:
是否可以有一个 Socket 可以同时侦听和接受 IPv6 和 IPv4 客户端?我在 C# 中使用了 IPv6 套接字,希望它会自动向后兼容,但 IPv4 客户端会导致无效的 ip 地址异常。
【问题讨论】:
是否可以有一个 Socket 可以同时侦听和接受 IPv6 和 IPv4 客户端?我在 C# 中使用了 IPv6 套接字,希望它会自动向后兼容,但 IPv4 客户端会导致无效的 ip 地址异常。
【问题讨论】:
将套接字的IPv6Only 选项设置为false:
Socket MySocket = new Socket(AddressFamily.InterNetworkV6, SocketType.Stream, ProtocolType.Tcp);
MySocket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, false);
(取自 Matthew Iselin 的第二个链接)
【讨论】:
看看here。您可以接受 IPv4 客户端以及 IPv6 客户端with the one server socket。
【讨论】: