Соединение отказано - розетка - PullRequest
0 голосов
/ 03 января 2011

Я создаю приложение для Android. Для отправки данных на другое устройство требуется соединение через сокет TCP.

Все отлично работает при первой передаче. Однако, когда я подключаю его во второй раз, он говорит, что соединение отклонено из-за ошибки хоста или связывания.

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

Эти вещи работают нормально, когда я полностью выхожу из приложения и снова открываю его, но он не работает, когда я пытаюсь открыть соединение без выхода.

Пожалуйста, помогите мне выяснить, связана ли проблема с сокетами или с приложением, и какие-нибудь идеи, как это можно решить?

1 Ответ

0 голосов
/ 03 января 2011

Посмотрите на вывод команды netstat -a после закрытия сокета на стороне сервера и перед повторной попыткой чего-либо. Если ваша пара IPaddress / порт все еще находится в каком-либо другом состоянии, кроме, я думаю, TIME_WAIT, вы не сможете восстановить соединение. Сторона сервера (та, которая вызывает accept), скорее всего, является виновником, но я бы проверил и то и другое сейчас, когда вы видите что-то не так.

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