美文网首页
IO流中的flush(outputStream)的作用

IO流中的flush(outputStream)的作用

作者: 这个名字也有宇 | 来源:发表于2016-12-02 15:10 被阅读0次

    出现问题原因:在wifi-derect连接上后,获取到camera的预览数据之后用outputstream。write写进去,然后flush,对这个流的写入和flush不是很清晰,所以进行了这方面的学习。

    这里最不清晰的点就是输入流.write进去后什么时候发送的

    其实发不发送实际是在tcp中控制的(比如Nagle算法)。

    可以利用发送端的socket对象调用setTcpNoDelay方法,即没有延迟,实时发送的方法,即等于取消了Nagle算法。

    这里的意思也就是说write的时候有一个tcp的内部缓冲区,缓冲区满了,或者手动flush了,数据就会在TCP协议控制之下进行发送,TCP保证可靠传输,并且按序列,所以如果网络不好,前面的内容没成功发送,后面的内容是发不出去的。

    总结:

    可以认为是getoutputStream不断的去write,当把管道写满的时候,就是自动flush也就是将数据推送出去,手动flush就是不管管道里面数据有没有满,都会推送数据出去。一般在close()的时候,这个方面里面会先进行一次flush。

    相关文章

      网友评论

          本文标题:IO流中的flush(outputStream)的作用

          本文链接:https://www.haomeiwen.com/subject/leifmttx.html