Java 教程是针对 JDK 8 编写的。本页中描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java 语言更改,了解 Java SE 9 及其后续版本中更新的语言特性的摘要。
请参阅JDK 发行说明,了解所有 JDK 发行版的新功能、增强功能以及已删除或已弃用选项的信息。
IPv4(Internet Protocol version 4)一直是在互联网上传输数据的行业标准版本的 Internet Protocol(IP)。IPv6(Internet Protocol version 6)是下一代 Internet 层协议。目前两个版本的 IP 都在使用中。
IPv4 地址是 32 位长,使用十进制格式表示,并以点分隔。IPv6 地址是 128 位长,使用十六进制格式表示,并以冒号分隔。IPv4 地址不能直接用于 IPv6,但 IPv6 支持一类特殊的地址:IPv4 映射地址。在 IPv4 映射地址中,前 80 位设置为零,接下来的 16 位设置为 1,最后的 32 位表示 IPv4 地址。
例如,下面是同一个 IP 地址以两种格式表示的示例:
IPv4 地址 IPv4 映射地址(用于 IPv6) 192.0.2.1 ::ffff:192.0.2.1
默认情况下,如果 IB 适配器中启用了 IPv6,Java 平台将使用 IPv6。然而,Solaris 操作系统和 Linux 中当前不支持 IPv4 映射地址。因此,如果要在 JDK 7 下使用 IPv4 地址格式,必须指定 java.net.preferIPv4Stack
属性,如下例所示:
% java -Dcom.sun.sdp.conf=sdp.conf -Djava.net.preferIPv4Stack=true MyApplication
早期的 InfiniBand 实现中发现了一些错误。这些错误在 Solaris 10 10/09 发行版中已得到修复。请确保您至少使用此版本。