如何取消阻止Java ObjectInputStream?

如何取消阻止Java ObjectInputStream?,java,io,network-programming,objectinputstream,Java,Io,Network Programming,Objectinputstream,在我的程序中,我在服务器和客户端之间使用ObjectInput和ObjectOutput流。在我的项目中,我制作了很多辅助测试类和项目来测试新工具,有时当我制作ObjectInputStream时,它会被卡住。我也看了看甲骨文,看他们是否有答案,但我不太清楚我需要做什么 Oracle说“从流中读取序列化流头并进行验证。此构造函数将阻塞,直到相应的ObjectOutputStream写入并刷新该头。” 我知道数据必须序列化才能发送,我的类实现了可序列化,尽管我觉得这对解决我的问题没有多大帮助。在一

在我的程序中,我在服务器和客户端之间使用ObjectInput和ObjectOutput流。在我的项目中,我制作了很多辅助测试类和项目来测试新工具,有时当我制作ObjectInputStream时,它会被卡住。我也看了看甲骨文,看他们是否有答案,但我不太清楚我需要做什么

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

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

任何帮助都将不胜感激,
谢谢

您的问题很模糊,但通常每个对等方都会在同一个套接字上创建一个
ObjectOutputStream
和一个
ObjectInputStream
。必须按该顺序进行,否则可能会出现死锁,出于同样的原因,需要在获得套接字两端后立即进行此操作。

对于含糊不清的问题,非常抱歉,但感谢您的回答。为了确保我理解了您的意思,服务器端必须在客户端之前启动其对象输入/输出流?另外,你先进去还是先出去,顺序有关系吗?我只能建议你再看一遍我的答案。我清楚地表达了自己的观点,并阐述了你刚才提出的所有问题。