Netty 通道写入和刷新不写入消息
Netty channel write and flush not writing message
我正在尝试使用以下方式将字节数组写入 netty 中的 ctx,但是我做不到。我正在使用 ChannelInboundHandlerAdapter。
ByteBuf mbuf = ctx.alloc().buffer();
mbuf.setByte(0, 69);
mbuf.setByte(1, 70);
mbuf.setByte(2, 71);
ctx.writeAndFlush(mbuf);
在日志中显示如下:
2017 年 11 月 28 日7:52:16下午io.netty.handler.logging.LoggingHandler写
信息:[id: 0x391dced5, L:/127.0.0.1:3978 - R:/127.0.0.1:52306] WRITE: 0B
我是不是遗漏了什么?
谢谢
问题是您的缓冲区被认为是 "empty",因为当您使用 setByte
方法时它的 writerIndex 没有改变。请改用 writeByte
或其他 writeXXX
方法。这些提高了 writerIndex,这意味着 Netty 能够看到实际上已经将某些内容写入缓冲区。
我正在尝试使用以下方式将字节数组写入 netty 中的 ctx,但是我做不到。我正在使用 ChannelInboundHandlerAdapter。
ByteBuf mbuf = ctx.alloc().buffer();
mbuf.setByte(0, 69);
mbuf.setByte(1, 70);
mbuf.setByte(2, 71);
ctx.writeAndFlush(mbuf);
在日志中显示如下:
2017 年 11 月 28 日7:52:16下午io.netty.handler.logging.LoggingHandler写 信息:[id: 0x391dced5, L:/127.0.0.1:3978 - R:/127.0.0.1:52306] WRITE: 0B
我是不是遗漏了什么?
谢谢
问题是您的缓冲区被认为是 "empty",因为当您使用 setByte
方法时它的 writerIndex 没有改变。请改用 writeByte
或其他 writeXXX
方法。这些提高了 writerIndex,这意味着 Netty 能够看到实际上已经将某些内容写入缓冲区。