【技术实现步骤摘要】
二进制协议编码、解码方法和装置
本专利技术涉及通信
,特别涉及一种二进制协议编码、解码方法和装置。
技术介绍
二进制协议是一串字节流,通常包括消息头(Header)和消息体(Body)两大部分。其中,消息头的长度固定,并且消息头中携带有消息体的长度,这样就能够从字节流中解析出完整的二进制数据。二进制协议广泛应用在通信系统内部各个设备的数据交换中,其优点在于没有冗余字段,传输高效。缺点是每个二进制协议的每个字节是固定的定义,这就造成了在传统的二进制协议编解码方法中,对于每个协议都必须写一套代码去编码或者解码二进制字节流中的每一个字节,代码开发量十分巨大,需要的人力成本和时间成本非常高。并且通信系统内部各设备使用二进制协议交互过程中,经常会因为通信系统的维护或者升级等的原因,二进制协议结构会经常扩展或者变动,造成了开发人员必须去维护一个十分巨大的二进制编解码的代码库。
技术实现思路
本专利技术实施例提供了一种二进制协议编码、解码方法和装置。所述技术方案如下:第一方面,本专利技术实施例提供了一种二进制协议编码方法,所述方法包括:接收数据分发服务消息;将所述数据分发服务 ...
【技术保护点】
1.一种二进制协议编码方法,其特征在于,所述方法包括:接收数据分发服务消息;将所述数据分发服务消息解析为键值对结构,所述键值对结构的关键字用于指示二进制协议的格式,所述键值对结构的值为需要采用二进制协议传输的内容;根据所述关键字确定对应的信息单元标识列表,所述信息单元标识列表包括至少一个信息单元标识;在数据库中分别查找所述信息单元标识列表中的各个信息单元标识对应的编码规则;分别采用查找到的各个编码规则对所述键值对结构的值进行编码,得到采用不同的编码规则编码得到的二进制编码结果;将所述二进制编码结果通过二进制字节流发送给编码规则对应的地址,或者将所述二进制编码结果写成二进制文 ...
【技术特征摘要】
1.一种二进制协议编码方法,其特征在于,所述方法包括:接收数据分发服务消息;将所述数据分发服务消息解析为键值对结构,所述键值对结构的关键字用于指示二进制协议的格式,所述键值对结构的值为需要采用二进制协议传输的内容;根据所述关键字确定对应的信息单元标识列表,所述信息单元标识列表包括至少一个信息单元标识;在数据库中分别查找所述信息单元标识列表中的各个信息单元标识对应的编码规则;分别采用查找到的各个编码规则对所述键值对结构的值进行编码,得到采用不同的编码规则编码得到的二进制编码结果;将所述二进制编码结果通过二进制字节流发送给编码规则对应的地址,或者将所述二进制编码结果写成二进制文件发送给编码规则对应的地址。2.根据权利要求1所述的方法,其特征在于,所述编码规则包括多个字段,所述多个字段包括一个根节点字段和多个子节点字段,所述根节点字段为一个用于承载编码后的数据的容器,所述多个子节点字段与二进制协议的各个字段对应;所述多个字段中的每个字段均包括字段名称、字段类型、内部编码类型、外部编码类型、长度、来源类型、数据来源、主题和关键字。3.根据权利要求2所述的方法,其特征在于,所述分别采用查找到的各个编码规则对所述键值对结构的值进行编码,包括:判断所述根节点字段的来源类型是否为存储过程类型;如果所述根节点字段的来源类型是存储过程类型,则调用所述根节点字段的数据来源指示的存储过程,并将从所述数据库中读取的数据填入参数键值对中,然后按照如下步骤遍历所述多个子节点字段;如果所述根节点字段的字段类型不是存储过程类型,则按照如下步骤遍历所述多个子节点字段;判断所述子节点字段的字段类型是否为容器类型;如果所述子节点字段的字段类型是容器类型,则判断所述子节点字段的来源类型是否为存储过程类型;如果所述子节点字段的来源类型是存储过程类型,则调用所述子节点字段的数据来源指示的存储过程,并将从所述数据库中读取的数据填入容器中;如果所述子节点字段的字段类型不是存储过程类型,则获取所述子节点字段的数据;如果所述子节点字段的字段类型不是容器类型,则获取所述子节点字段的数据;将所述子节点字段的数据写入二进制流。4.根据权利要求3所述的方法,其特征在于,所述获取所述子节点字段的数据,包括:判断所述子节点字段的来源类型是否为默认值;如果所述子节点字段的来源类型是默认值,则根据所述子节点字段的数据来源读取默认值;如果所述子节点字段的来源类型不是默认值,则根据所述参数键值对确定数据索引,根据所述数据索引读取数据。5.根据权利要求3所述的方法,其特征在于,所述将所述子节点字段的数据写入二进制流,包括:判断所述子节点字段的字段类型;当所述子节点字段的字段类型为数值型时,判断所述...
【专利技术属性】
技术研发人员:李洋,钟逸,江雪,刘晓俐,曹子钰,邓晖,邵晨龙,陈涛,杨帆,王啸原,肖雪露,刘佳,邓勇,许林,黎楚,张慧,冯曼琳,宁达,杨婧,徐建林,曾文艺,张菁菁,周峻颖,周浩宇,吴江楠,
申请(专利权)人:武汉船舶通信研究所中国船舶重工集团公司第七二二研究所,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。