如何解锁Java ObjectInputStream?

时间:2015-05-04 22:57:52

标签: java io network-programming objectinputstream

在我的程序中,我在服务器和客户端之间使用ObjectInput和ObjectOutput流。在处理我的项目时,我已经制作了许多测试类和项目来测试我的新工具,有时当我创建一个ObjectInputStream时它会被卡在那里。我也看了oracle,看看他们是否有答案,但我不知道我需要做什么。

Oracle说“从流中读取序列化流标头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream已写入并刷新标头。”

我知道数据必须被序列化才能发送,我的类实现了Serializeable,虽然我觉得它对解决我的问题没有多大帮助。在一些测试项目中,我一直在使我的ObjectInputStreams运行良好,有时它会冻结。

非常感谢任何帮助, 感谢

1 个答案:

答案 0 :(得分:0)

您的问题非常模糊,但通常每个对等方都会在同一个套接字上创建B::getSize()ObjectOutputStream。它必须按顺序完成,否则你可能会遇到死锁,并且出于同样的原因,只要你在两端获得套接字就需要它完成。