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