netty 固定长度解码器讲解

作者: 每天学点编程 | 来源:发表于2017-07-08 13:35 被阅读0次

    FixedLengthFrameDecoder是固定长度解码器,它能够按照指定的长度对消息进行自动解码,开发者不需要考虑TCP的粘包/拆包问题。

    FixedLengthFrameDecoder服务端开发

    在服务端的ChannelPipeline中新增FixedLengthFrameDecoder,长度设置为20,然后再依次增加字符串解码器和EchoServerHandler:

    利用telnet命令行测试EchoServer服务端

    (1)在【运行】菜单中输入cmd命令,打开命令行窗口。

    (2)在命令行中输入“telnet localhost 8080”,通过telnet连接服务端。


    (3)输入命令行内容:从头开始自学java welcome to Netty at guangzhou
    (4)EchoServer服务端运行结果:

    服务端运行结果完全符合预期,FixedLengthFrameDecoder解码器按照20个字节长度对请求消息进行截取。

    总结

    DelimiterBasedFrameDecoder用于对使用分隔符结尾的消息进行自动解码,FixedLengthFrameDecoder用于对固定长度的消息进行自动解码。
    有了上述两种解码器,再结合其他的解码器,如字符串解码器等,可以轻松地完成对很多消息的自动解码,而且不再需要考虑TCP粘包/拆包导致的读半包问题,极大地提升了开发效率。
    只要将DelimiterBasedFrameDecoderFixedLengthFrameDecoder添加到对应ChannelPipeline的起始位即可。

    相关文章

      网友评论

        本文标题:netty 固定长度解码器讲解

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