[英]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.