У меня также была эта проблема с Java-программой, пытающейся отправить команду на сервер через SSH. Проблема была с машиной, выполняющей код Java. У него не было разрешения на подключение к удаленному серверу. Метод write () работал нормально, но метод read () вызывал исключение java.net.SocketException: сброс соединения. Я исправил эту проблему, добавив ключ SSH клиента к известным ключам удаленного сервера.

от вопрос уже есть ответ здесь:

Что вызывает мое java.net.SocketException: сброс соединения? 15 ответов

Я получаю следующую ошибку при попытке чтения из сокета. Я делаюreadInt() на томInputStreamи я получаю эту ошибку. Изучение документации позволяет предположить, что клиентская часть соединения закрыла соединение. В этом сценарии я являюсь сервером.

У меня есть доступ к файлам журнала клиента, и он не закрывает соединение, и фактически его файлы журнала предполагают, что я закрываю соединение. Так у кого-нибудь есть идея, почему это происходит? Что еще проверить? Возникает ли это, когда есть локальные ресурсы, которые, возможно, достигают порогов?

Я отмечаю, что у меня есть следующая строка:

socket.setSoTimeout(10000);

незадолго доreadInt(), Существует причина для этого (длинная история), но просто любопытно, существуют ли обстоятельства, при которых это может привести к указанной ошибке? У меня сервер работает в моей IDE, и я случайно оставил свою IDE застрявшей на точке останова, и затем я заметил, что точно такие же ошибки начинают появляться в моих собственных журналах в моей IDE.

Во всяком случае, просто упоминая об этом, надеюсь, не красная сельдь. :-(

Ответы на вопрос(8)

Ваш ответ на вопрос