双栈模式;绑定到除 0.0.0.0 之外的任何地址

双栈模式;绑定到除 0.0.0.0 之外的任何地址

在 Windows 7 计算机上,我已将 IPV6_V6ONLY 设置为 0,以允许双栈套接字。我在网上看到的所有双栈套接字示例都绑定到 ANY 地址 (0.0.0.0)。绑定到此地址后,我可以确认我可以使用 ip4 地址或 ipv6 地址进行连接。

但是,如果我尝试绑定到双栈套接字上的除 ANY 地址之外的任何地址,比如环回(即 [::1]),我发现我只能使用 ipv6 地址连接到该套接字 - 也就是说,我可以连接到 [::1],但不能连接到 127.0.0.1。

这是预期的行为吗?我似乎无法在网上找到任何明确的信息(包括在 stackoverflow 网站上)。我需要做些不同的事情吗?

谢谢!

答案1

是的:如果您绑定到 ANY 地址并将 IPV6_V6ONLY 设置为 0,则可以使用 IPv4 和 IPv6。如果您绑定到特定地址,则只能使用该地址(以及其地址系列)。

相关内容