Java net socketexception connection reset что делать

Java net socketexception connection reset что делать

Форум — Mix-Server’s

Администратор у меня проблема с лаунчером сервера индастриал выдают ошибку internal exception java.net.socketexception connection reset

Здравствуйте Администратор у меня проблема с лаунчером сервера индастриал выдают ошибку internal exception java.net.socketexception connection reset.

@SEKSMASHINANASHEGOVREMENI
Я же написал тебе в личку, алло.
Окей, напишу ещё раз.

Полностью удали Java. Пуск>Панель Управления>Программы и компоненты>Java>[Удали её нажав ПКМ]

Зайди на сайт — https://www.java.com/ru/download/ и кликни «Загрузить Java»
Можно удалить все файлы игры %appdata%>.mix-servers — удалить.

После этого ты обновил Java до последней версии и теперь можешь скачать лаунчер заного.

Java.net.SocketException: Соединение reset

79 [2008-09-15 16:36:00]

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

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

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

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

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

java networking sockets connection socketexception

79 EJP [2010-11-29 07:11:00]

Существует несколько возможных причин.

На другом конце умышленно reset соединение, таким образом, что я не буду документировать здесь. Редко и, как правило, неверно, для прикладного программного обеспечения это делать, но это не известно для коммерческого программного обеспечения.

Чаще всего это вызвано записью на соединение, что другой конец уже закрыт нормально. Другими словами, ошибка протокола приложения.

Это также может быть вызвано закрытием сокета, когда в буфере приема сокета есть непрочитанные данные.

В Windows «программное обеспечение вызвало прерывание соединения», которое не совпадает с «соединением reset», вызвано сбоем сетевых проблем с вашего конца. Здесь есть статья базы знаний Microsoft.

29 erickson [2008-09-15 17:03:00]

Соединение reset просто означает, что был получен TCP RST. Это происходит, когда ваш партнер получает данные, которые он не может обработать, и для этого могут быть разные причины.

Простейшим является закрытие сокета, а затем запись большего количества данных в выходной поток. Закрыв сокет, вы сказали своему коллеге, что вы закончили говорить, и он может забыть о вашем соединении. Когда вы все равно отправляете больше данных об этом потоке, эксперт отвергает его с помощью RST, чтобы вы знали, что он не прослушивает.

В других случаях промежуточный брандмауэр или даже сам удаленный хост могут «забыть» о вашем TCP-соединении. Это может произойти, если вы не отправляете какие-либо данные в течение длительного времени (2 часа — общий тайм-аут), или потому, что сверстник перезагружен и потерял информацию об активных соединениях. Отправка данных по одному из этих несовместимых соединений вызовет также RST.

Обновление в ответ на дополнительную информацию:

Посмотрите внимательно на обработку SocketTimeoutException . Это исключение возникает, если превышен установленный тайм-аут при блокировке операции сокета. Состояние самого сокета не изменяется при вызове этого исключения, но если ваш обработчик исключений закрывает сокет, а затем пытается его записать, вы будете в состоянии соединения reset. setSoTimeout() призван дать вам чистый способ выйти из операции read() , которая в противном случае могла бы блокироваться навсегда, без каких-либо грязных действий, таких как закрытие сокета из другого потока.

7 GEOCHET [2008-09-15 16:45:00]

Всякий раз, когда у меня были такие странные проблемы, я обычно сажусь с помощью инструмента WireShark и смотрю на переданные необработанные данные назад и вперед. Вы можете быть удивлены, когда что-то отключается, и вы только уведомляетесь, когда пытаетесь прочитать.

5 Scott S [2013-07-23 20:10:00]

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

В случае большего количества возвращаемого текста исключение было выбрано, так как больше возвращался буфер.

Вы можете проверить этот контроль. Помните, что открытие URL-адреса похоже на файл, обязательно закройте его (отпустите соединение) после его полного чтения.

Вы должны тщательно осмотреть весь след,

У меня есть приложение для подключения к серверу и исправлено событие java.net.SocketException: Connection reset .

В моем случае это происходит при чтении с объекта clientSocket Socket , который по какой-то причине закрывает его соединение. (Потеря сети, брандмауэр или сбой приложения или предполагаемое закрытие)

На самом деле я восстанавливал соединение, когда получал ошибку при чтении с этого объекта Socket.

Интересно, что for my JAVA Socket , если клиент подключается к моему ServerSocket и закрывает его соединение, не отправляя ничего is.read() вызывает себя рекурсивно. Кажется, из-за того, что в бесконечном цикле для чтения из этого сокета вы пытаетесь для чтения из закрытого соединения. Если вы используете что-то вроде операции чтения,

Затем вы получаете stackTrace, как показано ниже, и

То, что я сделал, — это просто закрыть ServerSocket и обновить мое соединение и ждать дальнейших входящих клиентских подключений.

Это восстанавливает мое соединение для неизвестного потерянного сокета клиента

Я не мог найти другого способа, потому что, как вы видите ниже, вы не можете понять, потеряно ли соединение или нет без try and catch , потому что все кажется правильным. Я получил этот снимок, пока я непрерывно получал Connection reset .

3 kml_ckr [2011-03-27 23:30:00]

У меня была такая же ошибка. Я нашел решение проблемы сейчас. Проблема заключалась в том, что клиентская программа заканчивалась до того, как сервер прочитал потоки.

2 Pino [2015-05-08 15:24:00]

У меня была эта проблема с системой SOA, написанной на Java. Я работал как с клиентом, так и с сервером на разных физических машинах, и они отлично работали в течение длительного времени, затем эти неприятные сбрасывания соединений появились в журнале клиентов, и в журнале сервера не было ничего странного. Перезапуск клиента и сервера не помогло решить проблему. Наконец, мы обнаружили, что куча на стороне сервера была довольно полной, поэтому мы увеличили доступную память для JVM: проблема решена! Обратите внимание, что в журнале не было OutOfMemoryError: память была просто скудной, а не исчерпанной.

java net socketexception connection reset что делать

79 [2008-09-15 16:36:00]

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

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

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

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

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

java networking sockets connection socketexception

79 EJP [2010-11-29 07:11:00]

Существует несколько возможных причин.

На другом конце умышленно reset соединение, таким образом, что я не буду документировать здесь. Редко и, как правило, неверно, для прикладного программного обеспечения это делать, но это не известно для коммерческого программного обеспечения.

Чаще всего это вызвано записью на соединение, что другой конец уже закрыт нормально. Другими словами, ошибка протокола приложения.

Это также может быть вызвано закрытием сокета, когда в буфере приема сокета есть непрочитанные данные.

В Windows «программное обеспечение вызвало прерывание соединения», которое не совпадает с «соединением reset», вызвано сбоем сетевых проблем с вашего конца. Здесь есть статья базы знаний Microsoft.

29 erickson [2008-09-15 17:03:00]

Соединение reset просто означает, что был получен TCP RST. Это происходит, когда ваш партнер получает данные, которые он не может обработать, и для этого могут быть разные причины.

Простейшим является закрытие сокета, а затем запись большего количества данных в выходной поток. Закрыв сокет, вы сказали своему коллеге, что вы закончили говорить, и он может забыть о вашем соединении. Когда вы все равно отправляете больше данных об этом потоке, эксперт отвергает его с помощью RST, чтобы вы знали, что он не прослушивает.

В других случаях промежуточный брандмауэр или даже сам удаленный хост могут «забыть» о вашем TCP-соединении. Это может произойти, если вы не отправляете какие-либо данные в течение длительного времени (2 часа — общий тайм-аут), или потому, что сверстник перезагружен и потерял информацию об активных соединениях. Отправка данных по одному из этих несовместимых соединений вызовет также RST.

Обновление в ответ на дополнительную информацию:

Посмотрите внимательно на обработку SocketTimeoutException . Это исключение возникает, если превышен установленный тайм-аут при блокировке операции сокета. Состояние самого сокета не изменяется при вызове этого исключения, но если ваш обработчик исключений закрывает сокет, а затем пытается его записать, вы будете в состоянии соединения reset. setSoTimeout() призван дать вам чистый способ выйти из операции read() , которая в противном случае могла бы блокироваться навсегда, без каких-либо грязных действий, таких как закрытие сокета из другого потока.

7 GEOCHET [2008-09-15 16:45:00]

Всякий раз, когда у меня были такие странные проблемы, я обычно сажусь с помощью инструмента WireShark и смотрю на переданные необработанные данные назад и вперед. Вы можете быть удивлены, когда что-то отключается, и вы только уведомляетесь, когда пытаетесь прочитать.

5 Scott S [2013-07-23 20:10:00]

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

В случае большего количества возвращаемого текста исключение было выбрано, так как больше возвращался буфер.

Вы можете проверить этот контроль. Помните, что открытие URL-адреса похоже на файл, обязательно закройте его (отпустите соединение) после его полного чтения.

Вы должны тщательно осмотреть весь след,

У меня есть приложение для подключения к серверу и исправлено событие java.net.SocketException: Connection reset .

В моем случае это происходит при чтении с объекта clientSocket Socket , который по какой-то причине закрывает его соединение. (Потеря сети, брандмауэр или сбой приложения или предполагаемое закрытие)

На самом деле я восстанавливал соединение, когда получал ошибку при чтении с этого объекта Socket.

Интересно, что for my JAVA Socket , если клиент подключается к моему ServerSocket и закрывает его соединение, не отправляя ничего is.read() вызывает себя рекурсивно. Кажется, из-за того, что в бесконечном цикле для чтения из этого сокета вы пытаетесь для чтения из закрытого соединения. Если вы используете что-то вроде операции чтения,

Затем вы получаете stackTrace, как показано ниже, и

То, что я сделал, — это просто закрыть ServerSocket и обновить мое соединение и ждать дальнейших входящих клиентских подключений.

Это восстанавливает мое соединение для неизвестного потерянного сокета клиента

Я не мог найти другого способа, потому что, как вы видите ниже, вы не можете понять, потеряно ли соединение или нет без try and catch , потому что все кажется правильным. Я получил этот снимок, пока я непрерывно получал Connection reset .

3 kml_ckr [2011-03-27 23:30:00]

У меня была такая же ошибка. Я нашел решение проблемы сейчас. Проблема заключалась в том, что клиентская программа заканчивалась до того, как сервер прочитал потоки.

2 Pino [2015-05-08 15:24:00]

У меня была эта проблема с системой SOA, написанной на Java. Я работал как с клиентом, так и с сервером на разных физических машинах, и они отлично работали в течение длительного времени, затем эти неприятные сбрасывания соединений появились в журнале клиентов, и в журнале сервера не было ничего странного. Перезапуск клиента и сервера не помогло решить проблему. Наконец, мы обнаружили, что куча на стороне сервера была довольно полной, поэтому мы увеличили доступную память для JVM: проблема решена! Обратите внимание, что в журнале не было OutOfMemoryError: память была просто скудной, а не исчерпанной.

I am getting the following error trying to read from a socket. I’m doing a readInt() on that InputStream , and I am getting this error. Perusing the documentation this suggests that the client part of the connection closed the connection. In this scenario, I am the server.

I have access to the client log files and it is not closing the connection, and in fact its log files suggest I am closing the connection. So does anybody have an idea why this is happening? What else to check for? Does this arise when there are local resources that are perhaps reaching thresholds?

I do note that I have the following line:

just prior to the readInt() . There is a reason for this (long story), but just curious, are there circumstances under which this might lead to the indicated error? I have the server running in my IDE, and I happened to leave my IDE stuck on a breakpoint, and I then noticed the exact same errors begin appearing in my own logs in my IDE.

Anyway, just mentioning it, hopefully not a red herring.

9 Answers 9

There are several possible causes.

The other end has deliberately reset the connection, in a way which I will not document here. It is rare, and generally incorrect, for application software to do this, but it is not unknown for commercial software.

More commonly, it is caused by writing to a connection that the other end has already closed normally. In other words an application protocol error.

It can also be caused by closing a socket when there is unread data in the socket receive buffer.

In Windows, ‘software caused connection abort’, which is not the same as ‘connection reset’, is caused by network problems sending from your end. There’s a Microsoft knowledge base article about this.

Connection reset simply means that a TCP RST was received. This happens when your peer receives data that it can’t process, and there can be various reasons for that.

The simplest is when you close the socket, and then write more data on the output stream. By closing the socket, you told your peer that you are done talking, and it can forget about your connection. When you send more data on that stream anyway, the peer rejects it with an RST to let you know it isn’t listening.

In other cases, an intervening firewall or even the remote host itself might «forget» about your TCP connection. This could happen if you don’t send any data for a long time (2 hours is a common time-out), or because the peer was rebooted and lost its information about active connections. Sending data on one of these defunct connections will cause a RST too.

Update in response to additional information:

Take a close look at your handling of the SocketTimeoutException . This exception is raised if the configured timeout is exceeded while blocked on a socket operation. The state of the socket itself is not changed when this exception is thrown, but if your exception handler closes the socket, and then tries to write to it, you’ll be in a connection reset condition. setSoTimeout() is meant to give you a clean way to break out of a read() operation that might otherwise block forever, without doing dirty things like closing the socket from another thread.

Здравствуйте Администратор у меня проблема с лаунчером сервера индастриал выдают ошибку internal exception java.net.socketexception connection reset.

@SEKSMASHINANASHEGOVREMENI
Я же написал тебе в личку, алло.
Окей, напишу ещё раз.

Полностью удали Java. Пуск>Панель Управления>Программы и компоненты>Java>[Удали её нажав ПКМ]

Зайди на сайт — https://www.java.com/ru/download/ и кликни «Загрузить Java»
Можно удалить все файлы игры %appdata%>.mix-servers — удалить.

После этого ты обновил Java до последней версии и теперь можешь скачать лаунчер заного.

Java.net.SocketException: Connection reset при обработке события кнопки

Базовые технологии Java /

Здравствуйте, уважаемые форумчане! Разбираюсь с логикой работы клиента и сервера. Вот такой вопрос возник. Есть сервер, который выбирает из файла случайную строку и по запросу отправляет клиенту. Запрос делается по нажатию кнопки в клиенте. Все просто. Но вылетает исключение java.net.SocketException: Connection reset. Стэк указывает на обработчик события кнопки. Вот код:
(сервер)

(обработчик запроса клиента)

Для ясности я отправляю серверу текстовое сообщение, по которому вызывается метод, генерирующий строку.
В исключении указывается строка 27 клиента. Искал инфу в инете по этому исключению, но так, честно говоря, и не понял, что мне с этим делать. Помогите пожалуйста разобраться. Спасибо!

Немного изменил код клиента и сервера. Но в принципе все то же. Пришел к тому, что в клиенте не получается изменить текст Label. И дело в потоке считывания Scanner похоже. Погуглил, пишут, что во время работы приложения состояние узлов можно менять из потока JavaFX и нужно создать поток с помощью Platform.runLater(). Но не помогло. Все еще нужна ваша помощь, уважаемые форумчане).
Вот код клиента:

Стэктрейс:
Exception in thread «JavaFX Application Thread» java.lang.IllegalStateException: Scanner closed
at java.util.Scanner.ensureOpen(Scanner.java:1070)
at java.util.Scanner.findWithinHorizon(Scanner.java:1670)
at java.util.Scanner.nextLine(Scanner.java:1538)
at ClientTest.getAphorism(ClientTest.java:103)
at ClientTest.access$000(ClientTest.java:17)
at ClientTest$1.run(ClientTest.java:43)
at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
at java.lang.Thread.run(Thread.java:748)

Я немного разобрался. Причина исключения собственно в названии — scanner closed) в коде преждевременно закрываются потоки. Закрытие нужно видимо производить при закрытии окна. Плюс создание объекта Random rand нужно было внести в тело метода getAphorism(). Сейчас в качестве тестового варианта имею такой код:

Исключений не возникает, но. Отрабатывает только один раз: при нажатии кнопки появляется строка, при повторных нажатиях ничего не происходит — текст не меняется. Подскажите пожалуйста, как сделать так, чтобы при каждом нажатии кнопки появлялся новый текст?

Java net socketexception connection reset что делать

I am getting the following error trying to read from a socket. I’m doing a readInt() on that InputStream , and I am getting this error. Perusing the documentation this suggests that the client part of the connection closed the connection. In this scenario, I am the server.

I have access to the client log files and it is not closing the connection, and in fact its log files suggest I am closing the connection. So does anybody have an idea why this is happening? What else to check for? Does this arise when there are local resources that are perhaps reaching thresholds?

I do note that I have the following line:

just prior to the readInt() . There is a reason for this (long story), but just curious, are there circumstances under which this might lead to the indicated error? I have the server running in my IDE, and I happened to leave my IDE stuck on a breakpoint, and I then noticed the exact same errors begin appearing in my own logs in my IDE.

Anyway, just mentioning it, hopefully not a red herring. :-(

There are several possible causes.

The other end has deliberately reset the connection, in a way which I will not document here. It is rare, and generally incorrect, for application software to do this, but it is not unknown for commercial software.

More commonly, it is caused by writing to a connection that the other end has already closed normally. In other words an application protocol error.

It can also be caused by closing a socket when there is unread data in the socket receive buffer.

In Windows, ‘software caused connection abort’, which is not the same as ‘connection reset’, is caused by network problems sending from your end. There’s a Microsoft knowledge base article about this.

Connection reset simply means that a TCP RST was received. This happens when your peer receives data that it can’t process, and there can be various reasons for that.

The simplest is when you close the socket, and then write more data on the output stream. By closing the socket, you told your peer that you are done talking, and it can forget about your connection. When you send more data on that stream anyway, the peer rejects it with an RST to let you know it isn’t listening.

In other cases, an intervening firewall or even the remote host itself might «forget» about your TCP connection. This could happen if you don’t send any data for a long time (2 hours is a common time-out), or because the peer was rebooted and lost its information about active connections. Sending data on one of these defunct connections will cause a RST too.

Update in response to additional information:

Take a close look at your handling of the SocketTimeoutException . This exception is raised if the configured timeout is exceeded while blocked on a socket operation. The state of the socket itself is not changed when this exception is thrown, but if your exception handler closes the socket, and then tries to write to it, you’ll be in a connection reset condition. setSoTimeout() is meant to give you a clean way to break out of a read() operation that might otherwise block forever, without doing dirty things like closing the socket from another thread.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

десять − четыре =