默认情况下,我需要在Netty中创建小端字节格式的通道缓冲区,据我所知,我使用这段代码。
bootstrap.setOption("child.bufferFactory", new HeapChannelBufferFactory(ByteOrder.LITTLE_ENDIAN));
但是,当我创建新的通道缓冲区时,它们是大端序的,因此我必须手动使它们成为小端序。
有没有办法让所有通道缓冲区默认都是小端序?
谢谢!
编辑:
我正在创建这样的缓冲区:
ChannelBuffer opcodeBuffer = ChannelBuffers.buffer(ByteOrder.LITTLE_ENDIAN, 4);
如果我像这样创建它们
ChannelBuffer opcodeBuffer = ChannelBuffers.buffer(4);
他们不是小端序
正在使用的设置用于配置由应用中Channel
对象创建的缓冲区。这意味着 Netty 创建的每个支持缓冲区都将是小端序。
ChannelBuffers
是一个静态帮助程序类,它不能使用引导程序中的配置。如果您查看文档,您可以看到不带ByteOrder
的方法说它们正在显式制作大端缓冲区。
因此,如果要手动制作缓冲区,请确保使用正确的字节序。或者,可以在代码中使用ChannelBufferFactory
实现之一,以便能够轻松切换(如果需要)。