欢迎来到知嘟嘟! 联系电话:13336804447 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13336804447
知嘟嘟经纪人
收藏
专利号: 2017103396292
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2024-02-23
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种解析通信协议的方法,其特征在于,该方法包括以下步骤:

S1、协议的拆分:根据协议头与协议体之间的协议分隔符,将通信协议拆分成协议头部分和协议体部分;并将协议头部分的信息存储至一个协议头字符串变量中,将协议体部分的信息存储至一个协议体字符串变量中;

S2、协议头的解析:将协议头字符串变量中的协议头标识符去除;根据键值对标识符将协议头字符串变量中剩余的信息分割,得到每个协议头字段信息对应的键值对信息;根据每个键值对信息中的键和值的信息,得到对应的协议头字段信息的内容;

S3、协议体的解析:根据数据内容标识符将协议体字符串变量中的内容拆分成数据类型部分和数据内容部分;将数据类型部分中的数据类型标识符去除,得到数据类型的信息;

根据键值对标识符将数据内容部分分割,得到每条数据对应的键值对信息;根据每个键值对信息中的键和值的信息,得到对应的每条数据的内容。

2.如权利要求1所述的解析通信协议的方法,其特征在于,步骤S1具体包括以下操作:

步骤S101、将通信协议的所有内容赋值于一个协议字符串变量中;并创建一个用于定位协议分隔符的位置的游标变量;

步骤S102、从协议字符串变量的首字符开始,按照每次取出与协议分隔符长度相同的字符串的方式循环取出协议字符串变量中的字符串;每次取出字符串后,将取出的字符串与协议分隔符进行匹配,若匹配失败,则从协议字符串变量的下一个字符开始继续循环取出字符串,并将当前游标变量的值加1;若匹配成功,则保存当前游标变量的值;

步骤S103、根据保存的游标变量的值,从协议字符串变量中截取出协议头部分的字符串并存储至协议头字符串变量中;从协议字符串变量中截取出协议体部分的字符串并存储至协议体字符串变量中。

3.如权利要求1所述的解析通信协议的方法,其特征在于,步骤S2具体包括以下操作:

步骤S201、将协议头字符串变量中的协议头标识符去除;并将去除后的剩余内容存储至一个协议头内容字符串变量中;

步骤S202、创建一个用于存放键值对标识符的位置信息的游标集合;

步骤S203、从协议头内容字符串变量的首字符开始,按照每次取出与键值对标识符长度相同的字符串的方式循环取出协议头内容字符串变量中的字符串;每次取出字符串后,将取出的字符串与键值对标识符进行匹配,若匹配失败,则从协议头内容字符串变量的下一个字符开始继续循环取出字符串,并将当前位置信息的值加1;若匹配成功,则将当前的位置信息记录到所述游标集合中,再从协议头内容字符串变量的下一个字符开始继续循环取出字符串,并将当前位置信息的值加1;如此循环,直至协议头内容字符串变量中的所有内容遍历完全;

步骤S204、根据当前游标集合中所有的相邻的两条位置信息,从协议头内容字符串变量中截取出所有的协议头字段信息对应的键值对信息;

步骤S205、根据截取出的每个键值对信息中的键和值的信息,得到对应的协议头字段信息的内容。

4.一种存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现上述权利要求1至3中任一项所述方法的步骤。

5.一种解析通信协议的设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现上述权利要求1至3中任一项所述方法的步骤。

6.一种解析通信协议的系统,其特征在于:该系统包括顺次相连的协议拆分模块、协议头解析模块和协议体解析模块;

所述协议拆分模块用于:根据协议头与协议体之间的协议分隔符,将通信协议拆分成协议头部分和协议体部分;并将协议头部分的信息存储至一个协议头字符串变量中,将协议体部分的信息存储至一个协议体字符串变量中;

所述协议头解析模块用于:将协议头字符串变量中的协议头标识符去除;根据键值对标识符将协议头字符串变量中剩余的信息分割,得到每个协议头字段信息对应的键值对信息;根据每个键值对信息中的键和值的信息,得到对应的协议头字段信息的内容;

所述协议体解析模块用于:根据数据内容标识符将协议体字符串变量中的内容拆分成数据类型部分和数据内容部分;将数据类型部分中的数据类型标识符去除,得到数据类型的信息;根据键值对标识符将数据内容部分分割,得到每条数据对应的键值对信息;根据每个键值对信息中的键和值的信息,得到对应的每条数据的内容。

7.如权利要求6所述的解析通信协议的系统,其特征在于:所述协议拆分模块包括初始设置子模块、协议分隔符定位子模块、协议头及协议体截取子模块;

所述初始设置子模块用于:将通信协议的所有内容赋值于一个协议字符串变量中;并创建一个用于定位协议分隔符的位置的游标变量;

所述协议分隔符定位子模块用于:从协议字符串变量的首字符开始,按照每次取出与协议分隔符长度相同的字符串的方式循环取出协议字符串变量中的字符串;每次取出字符串后,将取出的字符串与协议分隔符进行匹配,若匹配失败,则从协议字符串变量的下一个字符开始继续循环取出字符串,并将当前游标变量的值加1;若匹配成功,则保存当前游标变量的值;

所述协议头及协议体截取子模块用于:根据所述协议分隔符定位子模块保存的游标变量的值,从协议字符串变量中截取出协议头部分的字符串并存储至协议头字符串变量中,从协议字符串变量中截取出协议体部分的字符串并存储至协议体字符串变量中。

8.如权利要求6所述的解析通信协议的系统,其特征在于:所述协议头解析模块包括协议头标识符去除子模块、游标集合创建子模块、键值对标识符定位子模块、键值对信息截取子模块、协议头字段信息获取子模块;

所述协议头标识符去除子模块用于:将协议头字符串变量中的协议头标识符去除;并将去除后的剩余内容存储至一个协议头内容字符串变量中;

所述游标集合创建子模块用于:创建一个用于存放键值对标识符的位置信息的游标集合;

所述键值对标识符定位子模块用于:从协议头内容字符串变量的首字符开始,按照每次取出与键值对标识符长度相同的字符串的方式循环取出协议头内容字符串变量中的字符串;每次取出字符串后,将取出的字符串与键值对标识符进行匹配,若匹配失败,则从协议头内容字符串变量的下一个字符开始继续循环取出字符串,并将当前位置信息的值加1;

若匹配成功,则将当前的位置信息记录到所述游标集合中,再从协议头内容字符串变量的下一个字符开始继续循环取出字符串,并将当前位置信息的值加1;如此循环,直至协议头内容字符串变量中的所有内容遍历完全;

所述键值对信息截取子模块用于:根据当前游标集合中所有的相邻的两条位置信息,从协议头内容字符串变量中截取出所有的协议头字段信息对应的键值对信息;

所述协议头字段信息获取子模块用于:根据截取出的每个键值对信息中的键和值的信息,得到对应的协议头字段信息的内容。

9.如权利要求8所述的解析通信协议的系统,其特征在于:所述协议头解析模块还包括协议头校验子模块,该协议头校验子模块用于:判断协议头部分是否是以协议头标识符为开头,若不是,则终止解析操作,提示解析出错并给出协议头信息异常的消息。

10.如权利要求6至9中任一项所述的解析通信协议的系统,其特征在于:所述协议头字段信息中包括数据类型的字段信息;

在此基础上,所述协议体解析模块还用于:在得到数据类型的信息后,将得到的数据类型的信息与协议头字段信息中包含的数据类型的字段信息进行比对,判断两者是否相同;

若不相同,则终止解析操作,提示解析出错并给出协议体内容错误的消息。