协议文件解析方法技术

技术编号:39823245 阅读:7 留言:0更新日期:2023-12-22 19:43
本申请实施例提供了一种协议文件解析方法

【技术实现步骤摘要】
协议文件解析方法、装置、设备及存储介质


[0001]本申请实施例涉及计算机
,尤其涉及一种协议文件解析方法

装置

设备及存储介质


技术介绍

[0002]国内网络游戏发展大致经历了端游

页游

手游三个时代

在网络游戏开发中,通信协议是避免不了的一个环节

无论对于客户端程序员还是服务端程序员而言,制定或选择一个合适的通信协议具有重要意义

[0003]相关技术中,在进行协议文件解析时,不同编程语言之间互相传输以及处理协议文件时,不同类型之间的相互转换以及访问会造成堆栈之间的交互过于频繁,从而降低了协议文件的解析效率,影响用户体验


技术实现思路

[0004]本申请实施例提供了一种协议文件解析方法

装置

设备及存储介质,使得协议文件解析方式更加灵活,可以支持多种编程语言的协议文件处理

[0005]第一方面,本申请实施例提供了一种协议文件解析方法,该方法包括:
[0006]获取接收到的二进制字节流,将所述二进制字节流写入协议数据缓冲区;
[0007]在检测到所述协议数据缓冲区存在更新数据的情况下,基于所述更新数据的唯一标识进行标识匹配;
[0008]在所述标识匹配的结果为第一匹配结果的情况下,通过注册的回调函数对所述更新数据进行解析;
[0009]在所述标识匹配的结果为第二匹配结果的情况下,将所述更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析

[0010]可选的,所述将所述二进制字节流写入协议数据缓冲区,包括:
[0011]获取预先定义的协议字段列表;
[0012]将所述二进制字节流以列表形式写入协议数据缓冲区

[0013]可选的,所述将所述更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析,包括:
[0014]将所述更新数据以列表形式传送至协议数据池中,获取所述更新数据的唯一标识对应的协议对象类型并进行协议对象的实例化;
[0015]通过设置的读取函数读取所述协议数据池中的更新数据,基于所述更新数据进行所述协议对象的初始化

[0016]可选的,在基于所述更新数据进行所述协议对象的初始化之后,还包括:
[0017]将所述协议对象中的每个字段数据写入至公用数据缓冲区;
[0018]通过套接字对象的异步发送函数发送所述公用数据缓冲区的数据至服务端

[0019]可选的,在所述获取接收到的二进制字节流之前,还包括:
[0020]在通过连接套接字函数检测到传参解析成功的情况下,通过套接字对象的异步连接函数开启接收子线程以接收服务端推送的二进制字节流;
[0021]所述将所述二进制字节流写入协议数据缓冲区,包括:
[0022]在接收到的二进制字节流的大小小于包头大小的情况下,控制所述接收子线程进行休眠;
[0023]在接收到的二进制字节流的大小不小于所述包头大小的情况下,创建协议数据缓冲区,将所述二进制字节流写入所述协议数据缓冲区

[0024]可选的,在所述获取接收到的二进制字节流之前,还包括:
[0025]服务端通过自动化生成工具生成协议文件

[0026]可选的,所述服务端通过自动化生成工具生成协议文件,包括:
[0027]根据定义的协议描述文件,通过设置的字段编码器根据不同编程语言调用对应的处理函数生成协议数据文件,所述协议描述文件包括唯一标识以及字段信息;
[0028]通过随机
UUID
生成算法生成版本数据;
[0029]将所述版本数据和所述协议数据文件组成协议文件

[0030]第二方面,本申请实施例还提供了一种协议文件解析装置,包括:
[0031]获取模块,用于获取接收到的二进制字节流;
[0032]写入模块,用于将所述二进制字节流写入协议数据缓冲区;
[0033]匹配模块,用于在检测到所述协议数据缓冲区存在更新数据的情况下,基于所述更新数据的唯一标识进行标识匹配;
[0034]解析模块,用于在所述标识匹配的结果为第一匹配结果的情况下,通过注册的回调函数对所述更新数据进行解析,在所述标识匹配的结果为第二匹配结果的情况下,将所述更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析

[0035]第三方面,本申请实施例还提供了一种电子设备,该设备包括:
[0036]一个或多个处理器;
[0037]存储装置,用于存储一个或多个程序,
[0038]当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请实施例所述的协议文件解析方法

[0039]第四方面,本申请实施例还提供了一种存储计算机可执行指令的非易失性存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本申请实施例所述的协议文件解析方法

[0040]第五方面,本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中,设备的至少一个处理器从计算机可读存储介质读取并执行计算机程序,使得设备执行本申请实施例所述的协议文件解析方法

[0041]本申请实施例中,通过获取接收到的二进制字节流,将二进制字节流写入协议数据缓冲区,在检测到协议数据缓冲区存在更新数据的情况下,基于更新数据的唯一标识进行标识匹配,在标识匹配的结果为第一匹配结果的情况下,通过注册的回调函数对所述更新数据进行解析,在标识匹配的结果为第二匹配结果的情况下,将更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析

上述的协议文件解析方式,可根据不同
的唯一标识采用不同的解析方式进行协议文件的处理,使得协议文件解析方式更加灵活,可以支持多种编程语言的协议文件处理

附图说明
[0042]图1为本申请实施例提供的一种协议文件解析方法的流程图;
[0043]图2为本申请实施例提供的另一种协议文件解析方法的流程图;
[0044]图3为本申请实施例提供的另一种协议文件解析方法的流程图;
[0045]图4为本申请实施例提供的一种协议文件解析装置的结构框图;
[0046]图5为本申请实施例提供的一种电子设备的结构示意图

具体实施方式
[0047]下面结合附图和实施例对本申请实施例作进一步的详细说明

可以理解的是,此处所描述的具体实施例仅仅用于解释本申请实施例,而非对本申请实施例的限定

另外还需要说明的是,为了便于描述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
协议文件解析方法,其特征在于,包括:获取接收到的二进制字节流,将所述二进制字节流写入协议数据缓冲区;在检测到所述协议数据缓冲区存在更新数据的情况下,基于所述更新数据的唯一标识进行标识匹配;在所述标识匹配的结果为第一匹配结果的情况下,通过注册的回调函数对所述更新数据进行解析;在所述标识匹配的结果为第二匹配结果的情况下,将所述更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析
。2.
根据权利要求1所述的协议文件解析方法,其特征在于,所述将所述二进制字节流写入协议数据缓冲区,包括:获取预先定义的协议字段列表;将所述二进制字节流以列表形式写入协议数据缓冲区
。3.
根据权利要求1所述的协议文件解析方法,其特征在于,所述将所述更新数据以列表形式传送至协议数据池中,通过设置的读取函数进行解析,包括:将所述更新数据以列表形式传送至协议数据池中,获取所述更新数据的唯一标识对应的协议对象类型并进行协议对象的实例化;通过设置的读取函数读取所述协议数据池中的更新数据,基于所述更新数据进行所述协议对象的初始化
。4.
根据权利要求3所述的协议文件解析方法,其特征在于,在基于所述更新数据进行所述协议对象的初始化之后,还包括:将所述协议对象中的每个字段数据写入至公用数据缓冲区;通过套接字对象的异步发送函数发送所述公用数据缓冲区的数据至服务端
。5.
根据权利要求1‑4中任一项所述的协议文件解析方法,其特征在于,在所述获取接收到的二进制字节流之前,还包括:在通过连接套接字函数检测到传参解析成功的情况下,通过套接字对象的异步连接函数开启接收子线程以接收服务端推送的二进制字节流;所述将所述二进制字节流写入协议数据缓冲区,包括:在接收到的二进制字节流的大小小于包头大小的情况下,控制所述接收子...

【专利技术属性】
技术研发人员:张金朝
申请(专利权)人:芜湖萤火之光网络科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1