一种接收数据的处理方法、装置及存储介质制造方法及图纸

技术编号:32512211 阅读:17 留言:0更新日期:2022-03-02 10:59
本发明专利技术涉及一种接收数据的处理方法、装置及存储介质,属于软件开发领域。方法包括:获取接收缓冲区的首个包开始标志所对应的包头结构数据;从所述接收缓冲区中获取所述包头结构数据所对应的接收数据,获取所述包头结构数据中的包类型信息所对应的包处理任务节点,将所述接收数据拷贝至所述包处理任务节点;获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接收数据包。本发明专利技术通过建立包处理任务节点以完成对接收数据的粘包及分包处理,能够快速得到完整的接收数据包,且不影响正常的网络数据接收,有利于提高网络数据传输效率及实时性。传输效率及实时性。传输效率及实时性。

【技术实现步骤摘要】
一种接收数据的处理方法、装置及存储介质


[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]进一步,所述获取接收缓冲区的首个包开始标志所对应的包头结构数据之前,还包括:
[0029]建立接收缓冲区;
[0030]将系统接收缓冲区接收的数据顺序存储至所述接收缓冲区。
[0031]采用上述改进方案的有益效果是:由于只是内存之间拷贝数据,能够及时将系统缓冲区接收到的数据存储到新建的接收缓冲区中,保证数据接收及处理的实时性,且新接收到的数据会顺序添加到接收缓冲区的数据末尾,可以实现初步的接收数据的包组合,有效减少数据分包发送导致的包组合过程,提高处理效率。
[0032]进一步,所述获取接收缓冲区的首个包开始标志所对应的包头结构数据,包括:
[0033]检测所述接收缓冲区是否为空,若否,则基于所述接收缓冲区的数据的存储位置,对所述接收缓冲区的数据进行顺序查找,得到所述首个包开始标志所对应的包头结构数据。
[0034]采用上述改进方案的有益效果是:当接收缓冲区存在未处理的接收数据时,对接收数据进行顺序处理,确保组包的正常进行。
[0035]第二方面,本专利技术提供了一种接收数据的处理装置,包括获取模块、第一处理模块和第二处理模块;
[0036]所述获取模块,用于获取接收缓冲区的首个包开始标志所对应的包头结构数据;
[0037]所述第一处理模块,用于从所述接收缓冲区中获取所述包头结构数据所对应的接收数据,获取所述包头结构数据中的包类型信息所对应的包处理任务节点,将所述接收数据拷贝至所述包处理任务节点;
[0038]所述第二处理模块,用于获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接收数据包。
[0039]第三方面,本专利技术提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的接收数据的处理方法的步骤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种接收数据的处理方法,其特征在于,包括:获取接收缓冲区的首个包开始标志所对应的包头结构数据;从所述接收缓冲区中获取所述包头结构数据所对应的接收数据,获取所述包头结构数据中的包类型信息所对应的包处理任务节点,将所述接收数据拷贝至所述包处理任务节点;获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接收数据包。2.根据权利要求1所述的方法,其特征在于,所述获取所述包头结构数据中的包类型信息所对应的包处理任务节点,将所述接收数据拷贝至所述包处理任务节点,包括:检测包处理任务列表中是否存在所述包头结构数据中的包类型信息所对应的第一包处理任务节点,若是,则将所述接收数据拷贝至所述第一包处理任务节点的数据末尾,若否,则在所述包处理任务列表中建立所述包类型信息所对应的第二包处理任务节点,将所述接收数据拷贝至所述第二包处理任务节点。3.根据权利要求1所述的方法,其特征在于,所述获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接收数据包之前,还包括:获取所述包处理任务节点的第一数据长度信息;判断所述第一数据长度信息与所述包头结构数据中的数据长度信息是否相同,若否,则将所述包头结构数据所对应的接收数据从所述接收缓冲区中删除,并转至获取接收缓冲区的首个包开始标志所对应的包头结构数据的步骤。4.根据权利要求3所述的方法,其特征在于,所述获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接收数据包之前,还包括:当所述第一数据长度信息与所述包头结构数据中的数据长度信息相同时,对所述包处理任务节点作检验和校验,若校验不通过,则将所述包头结构数据所对应的接收数据从所述接收缓冲区中删除,并转至获取接收缓冲区的首个包开始标志所对应的包头结构数据的步骤。5.根据权利要求1所述的方法,其特征在于,所述获取所述包处理任务节点中存储的数据,得到所述包头结构数据所对应的接...

【专利技术属性】
技术研发人员:秦忠华徐红娟李贵薪刘祖智刘培勇陆丽
申请(专利权)人:桂林长海发展有限责任公司
类型:发明
国别省市:

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

1