Java ObjectInputStream与ObjectOutputStream阻塞(block)问题

在网络通讯中,主机与客户端若使用ObjectInputStream与ObjectOutputStream建立对象通讯时,有时会发生线程阻塞问题。

这是因为当从InputStream创建一个ObjectInputStream时,需要从流中读入并验证一个Header,这时如果对方的ObjectOutputStream没有写入一个Header,ObjectInputStream的构造函数便会阻塞(block)。

解决这个问题的方法是调整ObjectInputStream与ObjectOutputStream的声明顺序

比如:主机端先建立ObjectInputStream后建立ObjectOutputStream,则对应地客户端要先建立ObjectOutputStream后建立ObjectInputStream

你可能感兴趣的:(java,网络,header,通讯)