LengthFieldBasedDecoder()是Netty的一个基于消息长度域的解码器,网上有很多资料教大家如何去使用,这里不在介绍。
本文主要解决一下消息头长度域的大端小端问题
LengthFieldBasedFrameDecoder() 默认采用大端模式(也就是长度域的低字节对应长度数字的高位),但在项目中,通信对方发给我的长度域采用小端模式,这就让我有点懵逼了,查阅了相关资料,发现该Decoder中有一个「ByteOrder」参数,该参数可以设定长度域的大小端模式。
带有该参数的构造方法如图所示:
使用时,将该参数设置为:
ByteOrder.LITTLE_ENDIAN // 长度域采用小端模式
ByteOrder.BIG_ENDIAN // 长度域采用大端模式