Android, клиент-серверное приложение, исключение Bad Socket - PullRequest
2 голосов
/ 03 марта 2010

У меня есть простое клиент-серверное приложение на Android. Служба Android связывается с сервером через TCP-сокеты. служба отправляет простую строку на сервер, который работает. сервер обрабатывает строку и отправляет обратно объект в службу Android. объект реализует сериализуемый интерфейс. объект успешно «покидает» сервер, но в тот момент, когда сервис Android получает объект (socket.readObject ()), я получаю следующее исключение:

java.net.SocketException: плохой сокет

Я никогда не видел этого. Что это значит?

Edit:

Метод, где генерируется исключение:

private static void startContextListener(){
 new Thread(){
  public void run(){
   try{
    while(contextsocket != null && !contextsocket.isClosed() && inContext.readObject() != null){
     kontext = (Kontext) inContext.readObject();
    }
   }
   catch(Exception e){
    Log.e(TAG, "startContextListener(): " + e.toString());
   }
  }
 }.start();
}

1 Ответ

2 голосов
/ 03 марта 2010

Это обычно результат read(2) в неверном дескрипторе сокета ([EBADF] fildes is not a valid file or socket descriptor open for reading), поэтому похоже, что какой-то слой приложения закрывает сокет.Можете ли вы опубликовать больше кода, чтобы продемонстрировать, как вы работаете с сокетом?

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