通过网络进行对象反序列化

时间:2009-09-28 15:02:11

标签: java serialization networking sockets messaging

当我尝试通过网络从ObjectInputStream中读取对象时,我得到了一个例外:

Socket socket = new Socket("localhost", 4444);
ObjectInputStream ois = new ObjectInputStream(socket.getInputStream());
while ((Object o = ois.readObject()) != null) {
}

以下是我得到的例外情况:

java.io.EOFException
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)

连接本身似乎很好,因为我能够通过网络读取字符串,但对象不起作用。

由于它是EOFExcepetion,我假设流当前不再发送数据。 (在发送第一个对象后就可以了)。 所以我想也许我正在以错误的方式使用objectdeserialization?

这可能是什么问题?谢谢!

1 个答案:

答案 0 :(得分:2)

为什么不拨打available()来检查是否有东西要读?可能值得发布您的服务器端代码。目前我们只看到故事的一面。