我被这个非常奇怪的问题困住了。在客户端中,我传递像这样的对象
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();
另外,在我写入对象并刷新之后,我应该关闭流。我不会关闭它,因为对象是从代码的不同部分一个接一个地定期写入的。
对等方已关闭连接。因此,没有更多对象可供读取。因此,您已到达流的末尾。因此readObject()
throws EOFException.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)