我正在尝试使用以下方式将字节数组写入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]写:0B
我在这里想念什么吗?
谢谢
最佳答案
问题是您的缓冲区被认为是“空”的,因为使用setByte
方法时不会更改其writerIndex。请改用writeByte
或其他writeXXX
方法。这些提高了writerIndex,这意味着Netty能够看到实际上已将某些内容写入缓冲区。