2
我在Android上有一个简单的客户端 - 服务器应用程序。 android服务通过tcp套接字与服务器通信。该服务发送一个简单的字符串到服务器的工作。服务器处理该字符串并将对象发回给android服务。该对象实现了可序列化的接口。对象“离开”服务器成功,但在其中的Android服务接收对象的点(socket.readObject())我得到以下异常:Android,客户端 - 服务器应用程序,不良套接字异常
java.net.SocketException异常:坏插座
我我从未见过这个。那是什么意思?
编辑:
方法,其中异常被抛出:
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();
}
私有静态无效startContextListener(){ \t \t新的Thread(){ \t \t \t公共无效的run(){ \t \t \t \t尝试{ \t \t \t \t \t而(contextsocket!= NULL &&!contextsocket .isClosed()&& inContext.readObject()!= null){ \t \t \t \t \t \t kontext =(K ontext)inContext.readObject(); (标记,“startContextListener():”+ e.toString()); } } } .start(); } 这是抛出异常的方法 我在两个不同的eclipse包中实现了这个应用程序和服务器应用程序。可序列化的类是相同的书面Java代码,但它们是两个不同的文件,每个项目中有一个文件。这是问题吗? – user283494
@moppel:编辑问题本身以添加代码会更好。现在来看代码 - 我没有在你发布的代码片段中看到明确的套接字操作,但是看起来你试图在每次循环迭代中读取对象TWICE - 一次在条件中(并且丢失它),第二次在循环的主体。这可能是一个问题。 –