我對ObjectInputStream有問題。我想通過這個發送對象,但程序停止在我想初始化ObjectInputStream的位置。我已經搜索了回答,並且我發現在你初始化一個ObjectInputStream之前需要打開ObjectOutputstream。但是這在那裏是有保證的。ObjectInputStream沒有初始化
我的客戶端類的代碼段:
socket = new Socket(InetAddress.getByName(server).getHostAddress(), 13340);
messages = new Scanner(socket.getInputStream());
p = new PrintStream(socket.getOutputStream());
ObjectOutputStream o = new ObjectOutputStream(socket.getOutputStream());
p.println("addServerContent");
o.flush();
System.out.println("1");
o.writeObject(String.valueOf(index));
o.writeObject(s);
而且繼承人的服務器的一部分:
}else if(what.equals("addServerContent")){
ObjectInputStream i = null;
try{
i = new ObjectInputStream(s.getInputStream());
}catch(IOException e){}
while(GxMS2.ListUsed){
try {
Thread.sleep(10);
} catch (InterruptedException ex) {}
}
try{
System.out.println("1");
int index = Integer.parseInt((String)i.readObject());
ServerContent sc = (ServerContent)i.readObject();
在服務器它doesn't甚至達到了 「1」 的標誌。
爲什麼它不工作?
謝謝
它是掛起這裏'而(GxMS2.ListUsed)'或其他地方... – Tom
不,它不存在,我在同時前面加一個標誌,它沒有被觸發 – RPanic
「我發現,用ObjectOutputStream需求被打開之前,你可以初始化一個ObjectInputStream「絕對不是真的 – ControlAltDel