美文网首页
28.几种常见的编解码器

28.几种常见的编解码器

作者: 未知的证明 | 来源:发表于2019-03-25 10:53 被阅读0次
public class MyServerInitializer extends ChannelInitializer<SocketChannel> {
    @Override
    protected void initChannel(SocketChannel ch) throws Exception {
        ChannelPipeline pipeline = ch.pipeline();
        pipeline.addLast(new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,0,4,0,4));
        pipeline.addLast(new StringDecoder(CharsetUtil.UTF_8));
        pipeline.addLast(new MyServerHandler());




        pipeline.addLast(new LengthFieldPrepender(4));
        pipeline.addLast(new StringEncoder(CharsetUtil.UTF_8));
    }
}

1.LengthFieldBasedFrameDecoder

new LengthFieldBasedFrameDecoder(Integer.MAX_VALUE,0,4,0,4)
LengthFieldBasedFrameDecoder.png
lengthFieldOffset虽然是字段上翻译为偏移量,其实可以理解为一个Header
lengthFieldLength意思是真实内容的字节长度
lengthAdjustment可以理解为第二个Header
initialBytesToStrip意思是从字节流开始,跳过多少个字节
解释一下:
lengthFieldOffset,lengthAdjustment是0,所以没有header,只有真实字节长度加上真实内容,又因为跳过0个字节,所以读取这个字节流的所有内容。
image.png
image.png
image.png image.png

2.StringDecoder

将字节码转换为字符串

3.new LengthFieldPrepender(4)

image.png

4.new StringEncoder(CharsetUtil.UTF_8)

转换为字节码

相关文章

网友评论

      本文标题:28.几种常见的编解码器

      本文链接:https://www.haomeiwen.com/subject/pufvvqtx.html