接收连接时出错:java.net.SocketException:线程“Thread-698”中的无效参数异常 java.lang.RuntimeException:未在 java.lang 的 Handin2.ConnectionHandlerImpl.run(ConnectionHandlerImpl.java:124) 处建立输入/输出。线程运行(线程.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 异常的特例