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 - 一次在條件中(並且丟失它),第二次在循環的主體。這可能是一個問題。 –