Netty(协议设计和解析程序)用来创建一条直言不讳的信息通信协议。

      最后更新:2021-11-20 22:40:56 手机定位技术交流文章

      所谓的协议是一项规范,由三个要素组成:语法、语义和时间顺序,在这三个要素中,通信双方有义务在因特网上进行数据传输,以便通信双方能够正确沟通和理解数据。

      由于不同中间体之间在功能上存在某些差异,因此没有满足不同独特需求的常规协议,因此,许多中间体制定了自己的通信协议,通信协议处理粘性问题和解密问题。

      在此教程中, 我们将建立自己的通讯协议 。

      自定义协议的要素

      协定的基本部分必须存在。

      • 一个神奇的数字是一个用来评估数据包合法性的数字。

      • 版本号:可以更新协议。

      • 信息体中使用的序列和反顺序类型,如json、Protobuf、Hissian等。

      • 命令类型:正在发送哪种类型的信件,例如发送类型

      • 请求的序列号:根据两项入境协议,提供无症状能力,即在收到不对称信息后,必须发现先前的通信请求。

      • 消息长度

      • 消息正文

      协议定义

      其中Version,Content-Length,SessionId这篇文章是我们头头特别报导的一部分。Content就是交互的主体。

      建立项目结构并展示软件包。

      图4-1说明项目结构:

      • 礼宾模块用Netty-Message-mic表示。

      • Netty-Message-server:与Nettyserver一起使用。

      图片

      图4-1

      • 这篇文章是我们对Blog4j. com的独家报导的一部分。

      NettyMessage-mic的包件组织如下。

      图片

      定义Header

      表示消息头

      应定义信件记录 。

      表示消息体

      OpCode

      定义操作类型

      定义编解码器

      单独定义信件协议编码。

      MessageRecordEncoder

      MessageRecordDecode

      议定书解析和编码测试

      Netty提供内嵌频道, 以加强频道处理器的模块测试。

      编码包分析

      当你运行代码, 你会看到一个信息出现在那里。

      按照协议规范:

      • 第一期会议前八字字节d

      • 请求类型用一个字节表示。

      • 4个字节表示长度

      • 文字的其余部分是信息体。

      测试粘包和半包问题

      使用浮滑法将捆绑除以生成两个包 。

      ByteBuf提供了一个方便的机制,在不提供数据副本的情况下将原ByteBuf分开。

      在使用上述代码后,获得以下变式:读者索引(0)+长度(8)表示要读8字节,但只收到7字节,因此直接报告错误。

      解决拆包问题

      长面积解码器“长边框架解码器 ” 是解决包拆解的最常用解码器,它有效地覆盖了基于长度拆解的大部分情况。 解码器用来解码开开源信息“ RockMQ ” 的中心。

      首先从解码器的基本设置开始

      • Ength Fieldoffest, 长度字段偏差, 这是包含的长度字段数据的起始点

      • FieldLength, 长度字段锁定所持有的字节数

      • 长度调整,在一些较为复杂的协议设计中,长度域不仅包括电文的长度,而且还包括诸如版本号、数据种类、数据状况等额外数据,我们可以在哪一点使用英文调整进行校正,值=软件包的长度――长度域值。

      • 初始位元TToStrip, 在解码后要跳过的初始字节数, 与信件内容字段的开始相对应 。

      • ength FieldEndoffet, 减去长度字段的末尾, 值 = 长度 Fieldoffet+ 长度 FieldLength

      添加长度解码器修正拆解问题。该过程产生以下结果:

      基于协议的自订电讯通信

      我们将使用图4-2中显示的代码结构完成完整的通信程序。

      图片

      图4-2

      服务端开发

      ServerHandler

      客户端开发

      ClientHandler

      爆文推荐阅读:

      今天我用字节拍了三万五千块 由砂纸制成,把手伸出来

      Ali Spring的亲手基金会包括AOP、国际奥委会、笔记、商业和你们所有人。

      我不知道什么是锁,看看这个来明白我的意思

      历史上最大的爪哇程序设计师一定有神的帮助

      2021年,有14家技术商店,对最典型的访谈作了描述,帮助我将手举起来。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13650.html

          热门文章

          文章分类