Socket write error что значит
Добрый день!
У меня возникла следующая проблема: Я передаю в сервлете массив байтво в наследника ServletOutputStream (EvermindServletOutputStream), после чего, как и должно быть появляется окошко с кнопками «Open», «Save» и «Cancel». Если сейчас нажать «Cancel», то никаких ошибок не будет, но если нажать «Save», и в новом появившемся окне, в котором необходимо выбрать место, куда сохранить файл, нажать «Cancel», то в приложение передастся ошибка
com.evermind.server.http.HttpIOException: Connection reset by peer: socket write error at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:250) at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:151) at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:146) at com.epam.empssl.servlets.EDocDownloadServlet.service(EDocDownloadServlet.java:73) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:793) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) at java.lang.Thread.run(Thread.java:534)
Где HttpIOException — это тоже, что и IOException. Кто-нибудь знает, в чем тут проблема и как ее решить?
Re: Connection reset by peer: socket write error
От: | Dima-amiD |
Дата: | 30.07.08 08:25 |
Оценка: |
Здравствуйте, Dima-amiD, Вы писали:
DA>Добрый день!
DA>У меня возникла следующая проблема: Я передаю в сервлете массив байтво в наследника ServletOutputStream (EvermindServletOutputStream), после чего, как и должно быть появляется окошко с кнопками «Open», «Save» и «Cancel». Если сейчас нажать «Cancel», то никаких ошибок не будет, но если нажать «Save», и в новом появившемся окне, в котором необходимо выбрать место, куда сохранить файл, нажать «Cancel», то в приложение передастся ошибка
DA>
DA>com.evermind.server.http.HttpIOException: Connection reset by peer: socket write error DA> at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:250) DA> at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:151) DA> at com.evermind.server.http.EvermindServletOutputStream.write(EvermindServletOutputStream.java:146) DA> at com.epam.empssl.servlets.EDocDownloadServlet.service(EDocDownloadServlet.java:73) DA> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) DA> at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:765) DA> at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:317) DA> at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:793) DA> at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) DA> at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) DA> at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192) DA> at java.lang.Thread.run(Thread.java:534) DA>
DA>Где HttpIOException — это тоже, что и IOException. Кто-нибудь знает, в чем тут проблема и как ее решить?
Собственно главное — это как сделать, чтобы это сообщение не появлялось, но не отлавливать его с помощью try — catch.
Re: Connection reset by peer: socket write error
От: | GarryIV |
Дата: | 30.07.08 09:19 |
Оценка: |
Здравствуйте, Dima-amiD, Вы писали:
DA>Добрый день!
DA>У меня возникла следующая проблема: Я передаю в сервлете массив байтво в наследника ServletOutputStream (EvermindServletOutputStream), после чего, как и должно быть появляется окошко с кнопками «Open», «Save» и «Cancel». Если сейчас нажать «Cancel», то никаких ошибок не будет, но если нажать «Save», и в новом появившемся окне, в котором необходимо выбрать место, куда сохранить файл, нажать «Cancel», то в приложение передастся ошибка
DA>
DA>com.evermind.server.http.HttpIOException: Connection reset by peer: socket write error DA>
DA>Где HttpIOException — это тоже, что и IOException. Кто-нибудь знает, в чем тут проблема и как ее решить?
Проблема в том, что клиент (браузер) закрыл соединение недождавшить завершения ответа. Имеет право.
Что касается способов решения — настройками логгирования пробовал? Не помню можно ли там подавить вывод какого-то одного исключения.
PS: Это исключение не только так вызывается — можно просто браузер закрыть или Stop нажать. Я б просто забил.
Ошибка «Connection reset by peer: socket write error»
Подскажите, кто сталкивался с подобной проблемой как решали?
Sample Start: 2015-02-27 12:31:48 MSK Load time: 1 Latency: 0 Size in bytes: 2461 Headers size in bytes: 0 Body size in bytes: 2461 Sample Count: 1 Error Count: 1 Response code: Non HTTP response code: java.net.SocketException Response message: Non HTTP response message: Connection reset by peer: socket write error Response headers: HTTPSampleResult fields: ContentType: DataEncoding: null
Пытаюсь понять, что нужно сделать для того, чтобы избежать данных ошибок при прогоне теста.
#2 ShortLegged
ShortLegged
- Город: Moscow
Отправлено 27 февраля 2015 — 11:42
Пытаюсь понять, что нужно сделать для того, чтобы избежать данных ошибок при прогоне теста.
java.net.SocketException: Software caused connection abort: socket write error [duplicate]
I am trying to send an image from a Java desktop application to a J2ME application. The problem is that I am getting this exception:
java.net.SocketException: Software caused connection abort: socket write error
I have looked around on the net, and although this problem is not that rare, I was unable to find a concrete solution. I am transforming the image into a byte array before transferring it. These are the methods found on the desktop application and on the J2ME respectively
public void send(String ID, byte[] serverMessage) throws Exception < //Get the IP and Port of the person to which the message is to be sent. String[] connectionDetails = this.userDetails.get(ID).split(","); Socket sock = new Socket(InetAddress.getByName(connectionDetails[0]), Integer.parseInt(connectionDetails[1])); OutputStream os = sock.getOutputStream(); for (int i = 0; i < serverMessage.length; i++) < os.write((int) serverMessage[i]); >os.flush(); os.close(); sock.close(); > private void read(final StreamConnection slaveSock) < Runnable runnable = new Runnable() < public void run() < try < DataInputStream dataInputStream = slaveSock.openDataInputStream(); int inputChar; StringBuffer results = new StringBuffer(); while ( (inputChar = dataInputStream.read()) != -1) < results.append((char) inputChar); >dataInputStream.close(); slaveSock.close(); parseMessage(results.toString()); results = null; > catch(Exception e) < e.printStackTrace(); Alert alertMsg = new Alert("Error", "An error has occured while reading a message from the server:\n" + e.getMessage(), null, AlertType.ERROR); alertMsg.setTimeout(Alert.FOREVER); myDisplay.setCurrent(alertMsg, resultScreen); >> >; new Thread(runnable).start(); >
I am sending the message across a LAN, and I have no problems when I send short text messages instead of images. Also, I used wireshark and it seems that the desktop application is only sending part of the message. Any help would be highly appreciated. Also, everything works on the J2ME simulator.
Из-за чего падает сокет-сервер?
Доброй ночи, просто так падает сокет-сервер с ошибкой «Connection reset by peer»
Кто сталкивался с бодобным?
- Вопрос задан более трёх лет назад
- 605 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1
vladimirchelyabinskiy @vladimirchelyabinskiy
Connection reset by peer (Соединение сброшено сервером)
Connection reset by peer может вызываться совершенно разными причинами. В общем случае сервер определяет, что сокет больше не работает нормально и закрывает его со своей стороны.
5.1 Read Error (Ошибка чтения)
Сценарий: Мэри не может понять, что говорит Джо, и вешает трубку вместо того, чтобы терять его сообщения (данные).
Ошибка чтения возникает когда сервер не может успешно прочитать данные от клиента. Сервера собирают информацию от клиента и когда получают ошибку при чтении данных, отключают пользователя, что приводит к сообщению «Read Error» при выходе.
5.2 Write Error (Ошибка записи)
Сценарий: Мэри пытается говорить с Джо, но полагает, что он ее не слышит. Поэтому она вешает трубку вместо того, чтобы мириться с потерей сообщений (данных).
Ошибка записи возникает когда сервер не может успешно записать информацию в клиента. При получении сервером информации, он обычно отвечает на это своими данными клиенту. Если сервер получает ошибку при записи в клиент, он отключает пользователя, и это приводит к сообщению «Write Error» по формату сходному с «Read Error»
5.3 Ping Timeout (эээ.. Пинг таймаут!)
Сценарий: Мэри, завозившись по хозяйству с детьми и сильно отвлекаясь, постоянно спрашивает Джо, слушает ли он ее. И если не получает ответа достаточно быстро — вешает трубку.
Сервер автоматически пингует пользователя через определенный промежуток времени. Это делается для того, чтобы убедиться, что клиент все еще на связи. Когда Вы видите сообщения «PING? PONG!» в окне статуса, это означает, что сервер послал пинг-запрос на Вашу машину и она отослала ему понг-ответ. Если Вы отключаетесь, а сервер не знает об этом, то он автоматически сбросит Ваш ник из сети после того, как долго не будет получать понг-ответы, что выльется в квит по «пинг таймауту». Такое может произойти с любым.
5.4 Broken pipe (Нарушенный пайп)
Сценарий: Мэри обнаружила записку с сообщением, которое ей надо было передать Джо, но каким-то образом, между запиской и ее ртом сообщение потерялось. Мэри пытается передать Джо содержание, но не уверена, что у нее это выходит и вешает трубку полагая это лучшим вариантом, чем потеря информации (данных).
Ошибка «сломанного пайпа» возникает когда сервер понимает, что у него есть сообщение для отсылки вовне, но он не может подать его на сокет из-за внутренний ошибки передачи данных.
5.5 Остальные ошибки
Сценарий: Множество вариантов; возможно в разговор вмешался оператор и это заставило Мэри усомниться в правильности звонка и она повесила трубку.