java tcp ipv6,用java语言在IPV6下的socket通信编程

在java下,如果使用主机名或者dns解析来进行ipv6的socket通信编程,代码和在ipv4下一样。

客户端:

import java.net.*;

import java.io.*;

void client(String name) {

Socket s = new Socket(name, 8080);

InputStream in = s.getInputStream();

//...

in.close();

}

服务端:

ServerSocket server =new ServerSocket(port);

Socket s;

while (true) {

s = server.accept();

doClientStuff(s);

}

配置:

启动jvm时,通过带参数来设置优先使用ipv4还是ipv6地址:

-Djava.net.preferIPv4Stack=true

-Djava.net.preferIPv6Addresses=true

如果要直接使用具体的ipv6地址,则需要使用InetAddress和Inet6Address来判断和设置:

InetAddress a = InetAddress.getByName(“www.sun.com”);

/* InetAddress a = InetAddress.getByName(“2002:fe76:6523::1”); */

/* InetAddress a = InetAddress.getByName(“211.45.65.2”); */

if (a instanceof Inet6Address) {

Inet6Address a2 = (Inet6Address) a;

if (a2.isIPv4CompatibleAddress()) {

...

}

if (a2.isLinkLocalAddress()) {

...

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值