Netty解码器之DelimiterBasedFrameDecoder

来源:互联网 发布:搭讪技巧 知乎 编辑:程序博客网 时间:2024/06/05 09:08

1.认识DelimiterBasedFrameDecoder,通过对DelimiterBasedFrameDecoder的使用,我们可以自动完成以分隔符作为码流结束标识的消息的解码。


 下面通过代码来看DelimiterBasedFrameDecoder的作用


分别运行Server和Client端,运行结果如下:\
这10次是模拟TCP的粘包/拆包,我们连续发送10次请求消息会发生粘包,如果没有DelimiterBasedFrameDecoder解码器,比如我们把代码中的
ch.pipeline().addLast(new DelimiterBasedFrameDecoder(1024,delimiter));
注释掉,那么运行结果会变成:

由于没有分隔符解码器,导致服务器端一次性读取了客户端发送的所有消息,这就是没有考虑TCP粘包导致的问题。
0 0
原创粉丝点击