Android,客户端 - 服务器应用程序,错误的套接字异常

时间:2010-03-03 18:53:51

标签: android exception sockets

我在android上有一个简单的客户端 - 服务器应用程序。 android服务通过tcp套接字与服务器通信。该服务向服务器发送一个简单的字符串。服务器处理字符串并将对象发送回android服务。该对象实现了可序列化的接口。对象“成功”离开服务器但是在android服务接收对象的时候(socket.readObject())我得到以下异常:

java.net.SocketException:Bad socket

我从未见过这个。这是什么意思?

编辑:

抛出异常的方法:

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 个答案:

答案 0 :(得分:2)

这通常是read(2)对无效套接字描述符([EBADF] fildes is not a valid file or socket descriptor open for reading)的结果,因此它看起来应用程序的某个层正在关闭套接字。您可以发布更多代码来演示如何使用套接字吗?