我陷入了这个非常奇怪的问题。在客户端中,我传递的对象是
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.