【发布时间】:2013-05-25 11:44:57
【问题描述】:
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(如上所述),我只是遇到了超时异常。 我不确定这是不支持还是我的环境有问题。 我想应该有一些异常表明在连接之前抛出不支持,而不是最终超时。
有什么想法吗?谢谢。
【问题讨论】:
-
这就是 IPv4 映射的 IPv6 地址的用途,拥有一个有效的 IPv4 和 IPv6 地址来连接到这两个家庭。
标签: sockets bind connect ipv6 ipv4