接收连接时出错:java.net.SocketException:参数无效 线程“Thread-698”中的异常java.lang.RuntimeException:没有 建立输入/输出 Handin2.ConnectionHandlerImpl.run(ConnectionHandlerImpl.java:124)at java.lang.Thread.run(Thread.java:722)
我一直在搜索这个例外。在任何地方,似乎都是结论,如果使用JVM选项-Djava.net.preferIPv4Stack=true
进行编译,它将解决问题。但它并不适合我。我正在运行IntelliJ并尝试使用套接字和线程实现Chord系统。这是抓住并抛出上述异常的地方:
if(this.remote == null || this.node == null) {
throw new RuntimeException("Connection handler has not been properly "
+ "initalialized");
}
try{
if(this.out == null) {
this.out = new ObjectOutputStream(remote.getOutputStream());
}
if(this.in == null) {
this.in = new ObjectInputStream(remote.getInputStream());
}
} catch(IOException e) {
System.out.println("Trying to make input/output for remote " + remote);
System.err.println(node.getKey()/Constants.NORMALIZE_KEY+": Error receiving connection: " + e.toString());
return false;
}
我不知道是否需要更多的代码片段才能提供帮助,但由于搜索时的解决方案根本没有帮助,我只是迷失在这个异常上。
有关触发此错误的内容的任何提示?套接字异常由给定的try-catch块捕获,作为IO异常的特例
答案 0 :(得分:1)
如果使用JVM选项-Djava.net.preferIPv4Stack = true进行编译,它将解决问题。
没有。如果使用该JVM选项执行。与编译器无关。