我正在尝试使用以下方式将字节数组写入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能够看到实际上已将某些内容写入缓冲区。

10-06 16:17