【发布时间】:2013-10-09 13:23:27
【问题描述】:
如下创建一个ClientSocket程序:
String remote_host = "10.0.0.1";
int remote_port = 9990;
InetAddress address = InetAddress.getByName(remote_host);//It gets a Inet4Address
String bindhost="facade";
InetAddress bindaddress = InetAddress.getByName(bindhost);//It gets a Inet6Address as Ipv6 address is configured for hostname "facade" in /etc/hosts
socket = new Socket(address, remote_port,bindaddress,9787);
获取异常如下:
java.net.SocketException: Network is unreachable
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:351)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:213)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:200)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:529)
at java.net.Socket.connect(Socket.java:478)
at java.net.Socket.<init>(Socket.java:375)
at java.net.Socket.<init>(Socket.java:276)
at Client.main(Client.java:25)
我们可以按照上面的方式创建socket吗???
使用类似的方式尝试了 ssh 协议。得到相同的错误: [root@mysystem ~]# ssh -6 -b 门面 root@10.0.0.1 ssh:连接到主机 10.0.0.1 的 22 端口:网络不可达
//facade在/etc/hosts中配置了ipv6地址
【问题讨论】:
-
您无法通过 IPv6 连接到 IPv4 地址。