目录
- 解码器
-
- LineBasedFrameDecoder
- DelimiterBasedFrameDecoder
- FixedLengthFrameDecoder
- LengthFieldBasedFrameDecoder
解码器
在上一篇中介绍了Netty的解码器抽象类ByteToMessageDecoder,Netty也定义了一些常用的解码器,这些解码器都实现了ByteToMessageDecoder的抽象方法decode(),常用的有下面四个:
1、 LineBasedFrameDecoder,换行解码器;
2、 DelimiterBasedFrameDecoder,分隔符解码器;
3、 FixedLengthFrameDecoder,定长解码器;
4、 LengthFieldBasedFrameDecoder,长度域解码器;
LineBasedFrameDecoder
换行解码器即遇到换行符则进行分割的解码器,Windowns的换行符为\r\n,Linux为\n,它的数据结构如下:

核心方法decode()的源码如下:

DelimiterBasedFrameDecoder
分隔符解码器可以接受多个分隔符,使用的时候只会按照在报文中遇到的第一个分隔符进行解码,它的数据结构如下:

解码过程如下:

FixedLengthFrameDecoder
定长解码器,以固定的长度对消息进行截取的解码器,它的源码相对简单,如下:

LengthFieldBasedFrameDecoder
基于长度的消息帧解码器,可以动态分割消息,它的数据结构如下:

以Netty中例子来理解这些属性值

decode()方法如下:
至此,Netty常用的解码器分析至此结束,感谢阅读。

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: