我正在尝试使用以下方式将字节数组写入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
我在这里错过了什么吗?
由于
答案 0 :(得分:4)
问题是你的缓冲区被认为是#34;空的"因为使用setByte
方法时不会更改其writerIndex。请改用writeByte
或其他writeXXX
方法。这些推进了writerIndex,这意味着Netty能够看到事实上已经写入了缓冲区。