簡體   English   中英

為什么ObjectInputStream readObject()拋出EOF異常

[英]Why is ObjectInputStream readObject() throwing EOF exception

我陷入了這個非常奇怪的問題。 在客戶端中,我傳遞諸如

try{
    oos.writeObject(new GameStartSerializedObject());
    oos.flush();
}
catch(Exception e){
    e.printStackTrace();
}

在服務器中,我正在讀取對象

try{
    //Its my turn
    thrown_message = player_reader.readObject();
}
catch(Exception e){

我的問題是為什么我會出現EOF異常。 我對對象輸入流的理解是,當我調用readObject()時應該阻塞直到獲得對象,這樣才能知道是否達到了eof? 請幫忙!

這就是我創建對象流的方式

ois = new ObjectInputStream(socket.getInputStream());
oos = new ObjectOutputStream(socket.getOutputStream());
oos.flush();

另外,在我寫完對象並刷新之后,我應該關閉流。 我不會關閉它,因為對象是從代碼的不同部分開始一個接一個地定期編寫的。

對等方已關閉連接。 因此,沒有其他對象可讀取。 因此,您已經到達了流程的盡頭。 Ergo readObject()拋出EOFException.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM