【发布时间】:2011-07-29 15:14:10
【问题描述】:
可以跳过 InputStream 中的数据
in.skip(in.available());
但如果你想用我发现的 OutputStream 做类似的事情
socket.getOutputStream().flush();
但这不一样,flush会传输缓冲的数据而不是忽略它。
有没有可能删除缓冲数据?
谢谢
编辑
这种情况是客户端-服务器应用程序,当(从客户端)发送新命令时 它(尝试)确保读取的答案与发送的最后一条命令相对应。
一些命令由(人为触发的)事件发送,而另一些则由自动线程发送。 如果一个命令在缓冲区中并且发送了一个新命令,那么答案将是第一个命令,导致不同步。
当然,同步方法加上一个名为“waitingCommand”的标志可能是更安全的方法,但由于通信不可靠,这种方法很慢(取决于超时)。这就是我要求跳过方法的原因。
【问题讨论】:
标签: java buffer outputstream