подключение к сокету и чтение вызывает SocketException: программное обеспечение вызвало прерывание соединения - PullRequest
0 голосов
/ 15 мая 2018

Мое приложение подключается к точке доступа и устанавливает соединение через сокет.При считывании из сокета возникает SocketException со следующим сообщением «Программное обеспечение вызвало прерывание соединения».

Socket socket = null;
            try {
                socket = new Socket(SERVER_IP, SERVER_PORT);
                ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(
                        1024);
                byte[] buffer = new byte[1024];

                int bytesRead;
                InputStream inputStream = socket.getInputStream();
                /*
                 * notice: inputStream.read() will block if no data return
                 */
                while ((bytesRead = inputStream.read(buffer)) != -1) {
                    byteArrayOutputStream.write(buffer, 0, bytesRead);
                    response += byteArrayOutputStream.toString("UTF-8");
                }
            } catch (UnknownHostException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                response = "UnknownHostException: " + e.toString();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                response = "IOException: " + e.toString();
            } finally {
                if (socket != null) {
                    try {
                        socket.close();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }

1 Ответ

0 голосов
/ 15 мая 2018

Обычно это означает, что произошла сетевая ошибка, такая как таймаут TCP. Я бы начал с размещения сниффера (wireshark) на соединение, чтобы увидеть, есть ли какие-либо проблемы. Если есть ошибка TCP, вы должны увидеть ее. Кроме того, вы можете проверить журналы вашего роутера, если это применимо. Если где-либо задействована беспроводная связь, это еще один источник ошибок такого рода

В противном случае вы можете Скачать TCP Test Tool для Windows и попробовать проверить с вашим IP, работает он или нет.

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...