首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当绑定一个IPv4地址时,套接字可以连接到IPv6地址吗?

当绑定一个IPv4地址时,套接字可以连接到IPv6地址吗?
EN

Stack Overflow用户
提问于 2013-05-30 10:34:09
回答 2查看 1.7K关注 0票数 1
代码语言:javascript
复制
InetSocketAddress ipv4 = ...; // the IPv4 address
InetSocketAddress ipv6 = ...; // the IPv6 address

Socket sock = ...; // initialize a socket

sock.bind(ipv4);
sock.connect(ipv6, 0);

两端均支持IPv4/IPv6双协议栈。

Java能支持这种连接吗?

如果JDK可以尝试将绑定地址转换为IPv6地址,或者将目标地址转换为IPv4地址?

我尝试了连接到IPv4时绑定IPv6的情况。JDK在连接过程中将绑定的IPv6地址转换为IPv4地址。但是当我尝试在连接到IPv6时绑定IPv4时(如上所述),我就得到了超时异常。我不确定这是不是因为支持,还是我的环境有问题。我猜应该有一些异常指示在连接之前不抛出支持,而不是最终超时。

有什么想法吗?谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-05-30 16:28:54

IPv4和IPv6是不同的协议。您不能将它们混合在一起。您只能从一个IPv4地址连接到另一个IPv4地址,或从一个IPv6地址连接到另一个IPv6地址。

票数 3
EN

Stack Overflow用户

发布于 2015-01-14 16:53:49

可以在unix机器上的IPv4和IPv6上创建单独的套接字侦听。http://msdn.microsoft.com/en-us/library/windows/desktop/bb513665%28v=vs.85%29.aspx

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

https://stackoverflow.com/questions/16827037

复制
相关文章

相似问题

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