目前,我正在尝试获得一些网络方面的经验,但在使用 ObjectIn/OutputStreams 时,我无法超越连接建立过程中的某些点。
我在几个线程(如这个: Java Creating a new ObjectInputStream Blocks )中阅读了有关 ObjectInputStream 阻塞构造函数的问题,许多人建议首先刷新输出,所以我想出了这个:
out = new ObjectOutputStream(socket.getOutputStream());
String test = "test";
out.writeObject(test);
out.flush();
InputStream is = socket.getInputStream();
in = new ObjectInputStream(is);
阻挡线是最后一根。 有什么建议为什么它仍然无法完成吗?如有任何帮助,我们将不胜感激。
最佳答案
您指定的代码行将阻塞,直到对等方在其套接字上创建了 ObjectOutputStream
或向套接字写入了其他内容(这将导致 StreamCorruptedException
) .
关于java - 尽管刷新了 OutputStream,新的 ObjectInputStream 仍会阻塞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44351519/