Netty - 默认情况下,使所有创建的缓冲区都是小端序



默认情况下,我需要在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实现之一,以便能够轻松切换(如果需要)。