Socket write error что значит
Перейти к содержимому

Socket write error что значит

  • автор:

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

  • Members
  • PipPipPip
  • 155 сообщений
    • Город: 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 Остальные ошибки

    Сценарий: Множество вариантов; возможно в разговор вмешался оператор и это заставило Мэри усомниться в правильности звонка и она повесила трубку.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *