gpt4 book ai didi

java - 如何刷新 Java NIO 中的 SocketChannel?

转载 作者:搜寻专家 更新时间:2023-10-31 08:20:55 25 4
gpt4 key购买 nike

在 Java IO 中,OutputStream 可以使用 flush() 方法来确保立即发送数据。

SocketChannel在Java NIO中有没有对应的函数?据我所知,FileChannel 有一个force() 方法来刷新数据。

可能是一个非常幼稚的问题......

最佳答案

OutputStream.flush() 除了刷新任何 BufferedOutputStreamObjectOutputStreamPrintStream 的缓冲区外什么都不做> 在堆栈中。

具体来说,它不会执行与 FileChannel.force()getFD().sync() 对应的任何操作。它只是将流缓冲区从 JVM 刷新到(在本例中)内核中的套接字发送缓冲区。

SocketChannel.write() 根本不涉及任何此类缓冲:它直接进入内核中的套接字发送缓冲区。所以没有什么flush,也就没有flush操作。

关于java - 如何刷新 Java NIO 中的 SocketChannel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7440514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com