Netty:什么时候writeAndFlush通道将来的侦听器回调被执行?

我是netty的新手,并试图了解writeAndFlush的通道未来如何工作.考虑在netty客户端上运行的以下代码:

final ChannelFuture writeFuture = abacaChannel.writeAndFlush("Test");
writeFuture.addListener(new ChannelFutureListener() {
    @Override
    public void operationComplete(ChannelFuture future) throws Exception {
        if (writeFuture.isSuccess()) {
            LOGGER.debug("Write successful");
        } else {
            LOGGER.error("Error writing message to Abaca host");
        }
    }
});

这个writeFuture operationComplete回调是什么时候执行的?

> netty将数据移交给OS发送缓冲区(或)
>操作系统将数据写入网络套接字后. (要么)
>此数据实际上是由服务器接收的.

TIA

最佳答案

1. After netty hands over the data to the OS send buffers (or)

从ChannelOutboundBuffer(netty的发送缓冲区)中删除数据后,将通知监听器

点赞