Java输入流缓冲对象?

Rob*_*Fox 4 java sockets object stream

我有一个客户端 - 服务器应用程序,每次新的客户端套接字加入时,服务器都会向所有客户端发送所有客户端的列表.问题是,当新客户端加入它时会得到正确的列表,但旧客户端会获得加入自己时获得的旧列表.有点像它们每次从输入流中获取相同的对象.

我可以以某种方式刷新输入流吗?

阅读对象:

while((inObject = in.readObject()) != null) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

发送对象:

out.writeObject(object);
Run Code Online (Sandbox Code Playgroud)

Mic*_*rdt 6

ObjectOutputStream.reset() 是你在找什么.

它还可以防止内存不足,否则可能会发生内存不足.原因是ObjectInput/OutputStream类缓存了通过它们发送的所有对象,这也防止了这些对象被垃圾收集.这是处理循环引用所必需的,并且还可以在多次发送对象时提高性能.