数据包解析方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:37968147 阅读:8 留言:0更新日期:2023-06-30 09:43
本发明专利技术涉及数据传输领域,本发明专利技术公开了一种数据包解析方法、装置、计算机设备及存储介质,其方法包括:从接收中的数据流获取待获取数据包的包头;判断包头的有效性;若包头有效,则获取待获取数据包的已接收数据长度,判断已接收数据长度的有效性;若已接收数据长度有效,则获取待获取数据包的包尾;判断包尾的有效性;若包尾有效,则根据包头和包尾获取待获取数据包。本发明专利技术通过获取包头并判断包头的有效性,获取数据包的已接收数据长度并判断已接收数据长度的有效性,获取待获取数据包的包尾并判断包尾的有效性,最终获取数据包,实现了对数据通信协议的统一解析流程。对数据通信协议的统一解析流程。对数据通信协议的统一解析流程。

【技术实现步骤摘要】
数据包解析方法、装置、计算机设备及存储介质


[0001]本专利技术涉及数据传输领域,尤其涉及一种数据包解析方法、装置、计算机设备及存储介质。

技术介绍

[0002]目前,在嵌入式产品中,经常需要根据数据通信协议对数据包进行解析。通常软件工程师会根据具体协议编写一份协议解析代码,由于协议的定义格式存在多种不同的类型,所以解析代码也不尽相同。而面对不同的数据通信协议,就需要软件工程师编写相对应的解析代码,这样不仅会增加软件工程师的工作量,而且数据解析的效率和质量也得不到很好的保证。

技术实现思路

[0003]基于此,有必要针对上述技术问题,提供一种数据包解析方法、装置、计算机设备及存储介质,以统一数据包解析流程,提高解析代码的编写效率。
[0004]一种数据包解析方法,包括:
[0005]从接收中的数据流获取待获取数据包的包头;
[0006]判断所述包头的有效性;
[0007]若所述包头有效,则获取所述待获取数据包的已接收数据长度,判断所述已接收数据长度的有效性;
[0008]若所述已接收数据长度有效,则获取所述待获取数据包的包尾;
[0009]判断所述包尾的有效性;
[0010]若所述包尾有效,则根据所述包头和所述包尾获取所述待获取数据包。
[0011]一种数据包解析装置,包括:
[0012]包头获取模块,用于从接收中的数据流获取待获取数据包的包头;
[0013]包头判断模块,用于判断所述包头的有效性;
[0014]数据有效性判断模块,用于若所述包头有效,则获取所述待获取数据包的已接收数据长度,判断所述已接收数据长度的有效性;
[0015]包尾获取模块,用于若所述已接收数据长度有效,则获取所述待获取数据包的包尾;
[0016]包尾判断模块,用于判断所述包尾的有效性;
[0017]数据包获取模块,用于若所述包尾有效,则根据所述包头和所述包尾获取所述待获取数据包。
[0018]一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现上述数据包解析方法。
[0019]一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计
算机程序被处理器执行时实现上述数据包解析方法。
[0020]上述数据包解析方法、装置、计算机设备及存储介质中,从接收中的数据流获取待获取数据包的包头;从而判断包头的有效性;若包头有效,则获取待获取数据包的已接收数据长度,判断已接收数据长度的有效性;若已接收数据长度有效,则获取待获取数据包的包尾;再判断包尾的有效性;最后若包尾有效,则根据包头和包尾获取待获取数据包。本专利技术通过从接收中的数据流获取待获取数据包的包头并判断包头的有效性,再判断已接收数据长度的有效性,最后获取包尾并判断包尾的有效性,统一数据包解析流程,可以兼容不同数据通信协议,大大提高解析代码的编写效率。
附图说明
[0021]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0022]图1是本专利技术一实施例中数据包解析方法的一流程示意图;
[0023]图2是本专利技术一实施例中数据包解析装置的一结构示意图;
[0024]图3是本专利技术一实施例中计算机设备的一示意图。
具体实施方式
[0025]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0026]在一实施例中,如图1所示,提供一种数据包解析方法,包括如下步骤S10

S60。
[0027]S10、从接收中的数据流获取待获取数据包的包头。
[0028]可理解地,接收中的数据流可以是通过预设的通讯协议不间断地接收的数据流,在此处,预设的通讯协议可采用MQTT(Message Queue Telemetry Transport,遥测传输协议)串口通信协议或USB(Universal Serial Bus,通用串行总线)。待获取数据包可以是数据流中指定的待获取的数据包。数据包包括包头,有效数据长度及包尾,在此处,包头可以是数据包开始位置的一种标志,有效数据长度可以是数据包里数据的长度,包尾可以是数据包结束位置的一种标志。
[0029]具体地,通过预设的通讯协议不间断地接收数据流,在接收的数据流中获取待获取的数据包的包头。
[0030]S20、判断所述包头的有效性。
[0031]S30、若所述包头有效,则获取所述待获取数据包的已接收数据长度,判断所述已接收数据长度的有效性。
[0032]可理解地,可以根据预设包头验证方法验证包头的有效性。预设包头验证方法可以根据实际需要进行设置。可以判断数据包的已接收数据长度是否大于或等于数据包最大长度,若已接收数据长度大于或等于数据包最大长度,则数据包的已接收数据长度无效;若
已接收数据长度小于数据包最大长度,则数据包的已接收数据长度有效。待获取数据包的已接收数据长度可以是在获取的包头有效之后所接收的数据长度。
[0033]具体地,判断包头是否有效,如果包头有效,则表示在接收的数据流中已获取到待获取的数据包的包头,从而获取包头之后的接收的数据长度,并判断已接收数据长度是否有效。
[0034]S40、若所述已接收数据长度有效,则获取所述待获取数据包的包尾。
[0035]S50、判断所述包尾的有效性。
[0036]具体地,如果已接收数据长度有效,则表示当前数据包已经接收完毕,可以从已接收的数据中识别的包尾,并判断包尾的有效性。
[0037]S60、若所述包尾有效,则根据所述包头和所述包尾获取所述待获取数据包。
[0038]具体地,如果包尾有效,则根据包头和包尾确定待获取数据包。
[0039]本实施例通过获取包头并判断包头的有效性,获取待获取数据包的已接收数据长度并判断已接收数据长度的有效性,之后获取待获取数据包的包尾并判断包尾的有效性,最后根据包头和包尾获取待获取数据包,实现了对数据包的三重验证并统一了数据包解析的流程。
[0040]可选地,步骤S10,即所述从接收中的数据流获取待获取数据包的包头,包括:
[0041]S101、在包头标志指示包头未检出时,设置待评估包头的第一数据起始位置。
[0042]S102、记录自所述第一数据起始位置开始接收的数据的待评估数据长度。
[0043]可理解地,包头标志可以是表示包头检出或未检出状态的标志,例如本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据包解析方法,其特征在于,包括:从接收中的数据流获取待获取数据包的包头;判断所述包头的有效性;若所述包头有效,则获取所述待获取数据包的已接收数据长度,判断所述已接收数据长度的有效性;若所述已接收数据长度有效,则获取所述待获取数据包的包尾;判断所述包尾的有效性;若所述包尾有效,则根据所述包头和所述包尾获取所述待获取数据包。2.如权利要求1所述的数据包解析方法,其特征在于,所述从接收中的数据流获取待获取数据包的包头,包括:在包头标志指示包头未检出时,设置待评估包头的第一数据起始位置;记录自所述第一数据起始位置开始接收的数据的待评估数据长度;当所述待评估数据长度不小于包头预设长度,获取所述待评估包头;根据预设包头验证方法验证所述待评估包头的有效性;若所述待评估包头有效,将所述待评估包头确定为所述待获取数据包的包头;修改所述包头标志,以使所述包头标志指示包头已检出。3.如权利要求2所述的数据包解析方法,其特征在于,所述记录自所述第一数据起始位置开始接收的数据的待评估数据长度,还包括:判断所述待评估数据长度是否大于或等于数据包最大长度;若所述待评估数据长度大于或等于数据包最大长度,将所述自所述第一数据起始位置开始接收的数据存入缓存区。4.如权利要求2所述的数据包解析方法,其特征在于,所述记录自所述第一数据起始位置开始接收的数据的待评估数据长度之后,还包括:若所述待评估数据长度小于包头预设长度,则继续接收数据。5.如权利要求2所述的数据包解析方法,其特征在于,所述根据预设包头验证方法验证所述待评估包头的有效性之后,还包括:若所述待评估包头无效,则将所述第一数据起始位置之后的指定个数的数据位置设置待评估包头的第二数据起始位置。6.如权利要求1所述的数据包解析方法,其特征在于,所述获取所述待获取数据包的已接收数据长度,判断所述已接收数据长度的有效性,包括:判断...

【专利技术属性】
技术研发人员:郑德飞朱文基胡榜
申请(专利权)人:深圳市安保医疗科技股份有限公司
类型:发明
国别省市:

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

1