java.net.SocketException:无效的参数

时间:2013-02-18 00:21:41

标签: sockets exception stream arguments

  

接收连接时出错: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异常的特例

1 个答案:

答案 0 :(得分:1)

  

如果使用JVM选项-Djava.net.preferIPv4Stack = true进行编译,它将解决问题。

没有。如果使用该JVM选项执行。与编译器无关。