Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sockets java.net.SocketException:参数无效_Sockets_Exception_Stream_Arguments - Fatal编程技术网

Sockets java.net.SocketException:参数无效

Sockets java.net.SocketException:参数无效,sockets,exception,stream,arguments,Sockets,Exception,Stream,Arguments,接收连接时出错:java.net.SocketException:参数无效 线程“thread-698”java.lang.RuntimeException中的异常:没有 在以下位置建立输入/输出: Handin2.ConnectionHandlerImpl.run(ConnectionHandlerImpl.java:124)位于 run(Thread.java:722) 我一直在寻找这个例外很多。在任何地方,似乎都可以得出这样的结论:如果使用JVM选项-Djava.net.preferIPv

接收连接时出错:java.net.SocketException:参数无效
线程“thread-698”java.lang.RuntimeException中的异常:没有 在以下位置建立输入/输出: Handin2.ConnectionHandlerImpl.run(ConnectionHandlerImpl.java:124)位于 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;
}
我不知道是否需要更多的代码片段来提供帮助,但我完全无法理解这个异常,因为搜索时的解决方案根本没有帮助

关于触发此错误的原因有何提示?套接字异常作为IO异常的特例被给定的try-catch块捕获

如果使用JVM选项-Djava.net.preferIPv4Stack=true进行编译,则可以解决问题

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

如果使用JVM选项-Djava.net.preferIPv4Stack=true进行编译,则可以解决问题


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

“java.lang.RuntimeException:未在…建立输入/输出”这不是java异常。这是一个应用程序异常。如果没有底层的Java异常,它就毫无意义。一般来说,当你遇到异常时,编写自己的文本是一种糟糕的做法。使用捕获的异常中的文本。“java.lang.RuntimeException:未在…建立输入/输出”这不是java异常。这是一个应用程序异常。如果没有底层的Java异常,它就毫无意义。一般来说,当你遇到异常时,编写自己的文本是一种糟糕的做法。使用捕获的异常中的文本。