Ошибка получения соединения: java.net.SocketException: Недопустимый аргумент Исключение в потоке "Thread-698" java.lang.RuntimeException: Не установить вход/выход на Handin2 .ConnectionHandlerImpl.run (ConnectionHandlerImpl.java:124) в java.lang.Thread.run (Thread.java:722)java.net.SocketException: Недопустимый аргумент
Я искал много на это исключение. Повсеместно кажется, что если вы скомпилируете с опцией JVM -Djava.net.preferIPv4Stack=true
, это решит проблему. Однако это не для меня. Я запускаю IntelliJ и пытаюсь реализовать систему Chord с Sockets и Threads. Это где упоминалось выше исключение перехватывается и брошено:
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
"java.lang.RuntimeException: Не удалось установить ввод/вывод при ..." Это не исключение Java. Это исключение для приложения. Это не имеет смысла без основного исключения Java. В целом, когда вы получаете исключение, это плохая практика составлять свой собственный текст. Используйте текст в исключенном вами исключении. – EJP