在客户端中,我获取UDP多播(IPv6)后服务器的地址。 所以,我有服务器的IPv6地址,我想创建一个链接到它的套接字:
下面你会看到我的代码摘录,希望能帮助你理解我得到的异常。
当我想创建SSLSocket时出现错误:
client.java
try{
System.out.println("IP: \n"+this.IP_ADDRESS);
this.sslSocketFactory = this.sslContext.getSocketFactory();
this.sslSocket = (SSLSocket) this.sslSocketFactory.createSocket(this.IP_ADDRESS, this.CLIENT_PORT);
}
catch (java.rmi.UnknownHostException e){
System.err.println("Don't know about host: " + this.IP_ADDRESS);
}
catch (IOException e) {
System.err.println("Couldn't get I/O for " + "the connection to: " + this.IP_ADDRESS);
}
输出
IP:
/fda8:6c3:ce53:a890:0:0:0:1
Couldn't get I/O for the connection to: /fda8:6c3:ce53:a890:0:0:0:1
我想知道是否存在异常,因为IP格式(地址前面的“/”)或者是因为它是IPv6地址。
IP_ADDRESS
的类型为InetAddress
编辑1
以下是我获取IP地址的方法: 我将UDP数据报发送到服务器,然后检查它的响应:
// Check if message is correct
String message = new String(receivePacket.getData()).trim();
System.out.println(message);
if (message.equals("SERVER_POSITIVE_RESPONSE")){
this.IP_ADDRESS = receivePacket.getAddress();
break;
}
编辑2
我有e.printStackTrace
,这就是我得到的
java.net.ConnectException: Connection refused: connect