[Netty]——分隔符和定长解码器的应用(第五章)

DelimiterBasedFrameDecoderFixedLengthFrameDecoder。分别是分隔符消息解码器和定长消息解码器。都能解决TCP底层的数据包的粘包和拆包导致的读半包问题。

代码示例:官方的示例echo

主要内容:

  • DelimiterBasedFrameDecoder的服务端和客户端开发;
  • FixedLengthFrameDecoder的服务端开发和并通过talent进行测试;

DelimiterBasedFrameDecoder的核心代码(Server和Client都加上这段代码):对特定分隔符的消息进行解码,这里是$_

          // DelimiterBasedFrameDecoder
          ByteBuf delimiter = Unpooled.copiedBuffer("$_".getBytes());
          p.addLast(new DelimiterBasedFrameDecoder(1024, delimiter));
          p.addLast(new StringDecoder());


FixedLengthFrameDecoder的核心代码(Server和Client都加上这段代码):只读取固定长度的消息。这里是20

          // FixedLengthFrameDecoder
          p.addLast(new FixedLengthFrameDecoder(20));
          p.addLast(new StringDecoder());



\color{green}{\small\mathbf{<TBD>}}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。