首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定到IPV6 - IPV4中的回送绑定到了什么?

绑定到IPV6 - IPV4中的回送绑定到了什么?
EN

Stack Overflow用户
提问于 2010-10-28 04:28:14
回答 1查看 1.5K关注 0票数 0

我发誓我以前见过这个问题,但我想不出神奇的搜索字符串来帮我找到它:

我使用以下命令创建了一个用于侦听的套接字:

代码语言:javascript
复制
s = socket()...
getaddrinfo("::1",...);
bind()...

最后,我得到一个绑定到"::1“的IPV6套接字和一个绑定到"0.0.0.0”的IPV4套接字。我希望将IPV4套接字绑定到"127.0.0.1“。为什么会发生这种情况,我如何修复它,使其只接受ipv4套接字上的本地主机连接?

这是在Win7上,我之前已经关闭了IPV6_V6ONLY。

EN

回答 1

Stack Overflow用户

发布于 2010-10-28 09:14:37

getaddrinfo()和bind()一次只能在一个IP上操作。如果您不指定自己的显式绑定,则IPv4将绑定到0.0.0.0。听起来好像您只为双堆栈套接字的IPv6部分调用了bind()一次,而忽略了它的IPv4部分。我不知道这是否有效,但尝试调用bind()两次,一次使用IPv6 "::1“地址,另一次使用IPv6 "::FFFF:127.0.0.1”地址(请记住,双堆栈套接字上的IPv4地址必须表示为IPv6映射的IPv6地址)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4037403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档