面试题答案
一键面试固定长度解码器(FixedLengthFrameDecoder)
- 原理:按照固定的长度对字节流进行解码,每次读取固定长度的字节作为一个完整的数据包。
- 适用场景:适用于每个数据包长度固定的场景,如某些简单协议规定每个数据包固定为1024字节。
行分隔符解码器(LineBasedFrameDecoder)
- 原理:以换行符(如
\n
或\r\n
)作为分隔符,将接收到的字节流按行分割成一个个数据包。 - 适用场景:适用于文本协议,数据以行为单位进行传输的场景,比如HTTP协议在某些情况下可以用这种方式处理。
自定义长度解码器(LengthFieldBasedFrameDecoder)
- 原理:数据包中包含一个字段用来表示整个数据包的长度,解码器根据这个长度字段来截取数据包。
- 适用场景:应用广泛,适用于数据包长度不固定,但有明确长度标识字段的场景,比如很多二进制协议通过特定字节位表示数据包长度。