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时(如上所述),我就得到了超时异常。我不确定这是不是因为支持,还是我的环境有问题。我猜应该有一些异常指示在连接之前不抛出支持,而不是最终超时。
有什么想法吗?谢谢。
发布于 2013-05-30 16:28:54
IPv4和IPv6是不同的协议。您不能将它们混合在一起。您只能从一个IPv4地址连接到另一个IPv4地址,或从一个IPv6地址连接到另一个IPv6地址。
发布于 2015-01-14 16:53:49
可以在unix机器上的IPv4和IPv6上创建单独的套接字侦听。http://msdn.microsoft.com/en-us/library/windows/desktop/bb513665%28v=vs.85%29.aspx
https://stackoverflow.com/questions/16827037
复制相似问题