【发布时间】:2009-09-28 15:02:11
【问题描述】:
当我尝试通过这样的网络从 ObjectInputStream 读取对象时出现异常:
Socket socket = new Socket("localhost", 4444);
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while ((Object o = ois.readObject()) != null) {
}
这是我得到的例外:
java.io.EOFException 在 java.io.ObjectInputStream$BlockDataInputStream.peekByte(未知来源) 在 java.io.ObjectInputStream.readObject0(未知来源) 在 java.io.ObjectInputStream.readObject(未知来源)连接本身似乎很好,因为我可以通过网络读取字符串,但对象不起作用。
由于它是 EOFExcepetion,我假设流当前不再发送数据。 (在发送第一个对象后就可以了)。 所以我在想也许我以错误的方式使用对象反序列化?
这可能是什么问题?谢谢!
【问题讨论】:
-
服务器端是什么样子的?你如何结束连接?
-
服务器没有结束连接。它序列化一个对象,然后通过 outputstream.writeObject() 将其发送给客户端
-
好的,抱歉,我刚刚发现关闭连接的服务器确实有问题。
标签: java serialization networking sockets messaging