1
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(如上所述),我只是遇到了超时异常。我不确定这是不支持还是我的环境有问题。我想应该有一些异常表明在连接之前不支持抛出,而不是最终超时。

任何想法?谢谢。

4

2 回答 2

3

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

于 2013-05-30T08:28:54.410 回答
-1

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

于 2015-01-14T08:53:48.827 回答