使用 Java 开发兼容 IPv6 的网络应用程序
2010-06-08 00:00:00 来源:WEB开发网核心提示: 那么 Java 是如何来支持 IPv6 的呢? Java 网络栈会优先检查底层系统是否支持 IPv6,以及采用的何种 IP 栈系统,使用 Java 开发兼容 IPv6 的网络应用程序(2),如果是双栈系统,那它直接创建一个 IPv6 套接字(如图 1),如果四个数字都是零,则可以被省略,图 1.
那么 Java 是如何来支持 IPv6 的呢? Java 网络栈会优先检查底层系统是否支持 IPv6,以及采用的何种 IP 栈系统。如果是双栈系统,那它直接创建一个 IPv6 套接字(如图 1)。
图 1. 双栈结构
对于分隔栈系统,Java 则创建 IPv4/v6 两个套接字(如图 2)。如果是 TCP 客户端程序,一旦其中某个套接字连接成功,另一个套接字就会被关闭,这个套接字连接使用的 IP 协议类型也就此被固定下来。如果是 TCP 服务器端程序,因为无法预期客户端使用的 IP 协议,所以 IPv4/v6 两个套接字会被一直保留。对于 UDP 应用程序,无论是客户端还是服务器端程序,两个套接字都会保留来完成通信。
图 2. 分隔栈结构
如何验证 IPv6 地址
IPv6 地址表示
从 IPv4 到 IPv6 最显著的变化就是网络地址的长度,IPv6 地址为 128 位长度,一般采用 32 个十六进制数,但通常写做 8 组每组 4 个十六进制的形式。例如:
2001:0db8:85a3:08d3:1319:8a2e:0370:7344 是一个合法的 IPv6 地址。如果四个数字都是零,则可以被省略。
2001:0db8:85a3:0000:1319:8a2e:0370:7344 等同于 2001:0db8:85a3::1319:8a2e:0370:7344。
更多精彩
赞助商链接