CN112788078B - 数据传输方法、接收装置、发送装置和计算机设备 - Google Patents
数据传输方法、接收装置、发送装置和计算机设备 Download PDFInfo
- Publication number
- CN112788078B CN112788078B CN201911083107.6A CN201911083107A CN112788078B CN 112788078 B CN112788078 B CN 112788078B CN 201911083107 A CN201911083107 A CN 201911083107A CN 112788078 B CN112788078 B CN 112788078B
- Authority
- CN
- China
- Prior art keywords
- data
- field
- identifier
- field information
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种数据传输方法、接收装置、发送装置和计算机设备。该方法包括:获取数据传输指令,其中,数据传输指令用于指示发送装置发送数据包至接收装置,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;发送数据包至接收装置。通过本发明,能够减小数据传输时占用带宽、降低接收端响应压力。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种数据传输方法、接收装置、发送装置、计算机设备和计算机可读存储介质。
背景技术
随着显示屏技术、处理芯片技术以及互联网技术的发展,移动终端几乎在一瞬之间转变为互联网业务的关键入口和主要创新平台,互联网资源、移动网络资源与环境交互资源的最重要枢纽。现有技术中,通过对移动终端上操作行为和用户信息等数据进行研究,以不断提升移动终端使用的舒适度和便利性,其中,收集上述相关数据并上传到服务端,成为该类研究的基础。
发明人研究发现,目前将收集到的上述相关数据传输至服务端时,通常以文本形式进行传输,例如txt格式、json格式以及xml格式等,而以文本形式进行数据传输时,数据的聚合能力较差,多条数据需要分别传输,导致发送端与接收端之间需要多次交互,一方面,极大地占用发送端与服务端之前的通信带宽,另一方面增大服务端的响应压力。
发明内容
本发明的目的是提供一种数据传输方法、接收装置、发送装置、计算机设备和计算机可读存储介质,用于解决现有技术中数据传输时占用带宽大、接收端响应压力大的技术问题。
一方面,为实现上述目的,本发明提供了一种数据传输方法。
该数据传输方法应用于发送装置,数据传输方法包括:获取数据传输指令,其中,数据传输指令用于指示发送装置发送数据包至接收装置,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;发送数据包至接收装置。
进一步地,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
进一步地,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
进一步地,在发送数据包至接收装置的步骤之前,数据传输方法还包括:对数据记录中的数据进行序列化;将序列化后的各条数据记录依次拼接得到数据包。
进一步地,在发送数据包至接收装置之前,数据传输方法还包括:将待传输的数据内容添加至预定义的数据对象,以得到有效数据;确定数据内容对应的元数据,其中,元数据包括若干字段;当数据内容具有元数据时,根据元数据中字段的字段名称和字段值生成字段信息;根据有效数据和字段信息生成主体数据;当数据内容不具有元数据时,根据有效数据生成主体数据;确定主体数据的描述信息;根据主体数据和主体数据的描述信息,生成数据记录。
进一步地,将待传输的数据内容添加至预定义的数据对象,以得到有效数据的步骤包括:获取公共字段添加至数据对象,以得到中间对象;将待传输的数据中的私有字段添加至中间对象,以得到有效数据。
进一步地,根据元数据中字段的字段名称和字段值生成字段信息的步骤包括:将字段名称的长度设置于字段信息的前x1个字节;将字段名称设置于前x1个字节后且与前x1个字节相邻的字节;将第二标识设置于字段名称后且与字段名称相邻的x2个字节的前y1位;将字段值的长度设置于x2个字节的后y2位,其中,y1位和y2位构成x2个字节;将字段值设置于x2个字节后且与x2个字节相邻,其中,x1、x2、y1和y2均为自然数。
进一步地,根据有效数据和字段信息生成主体数据的步骤包括:将元数据中各个字段对应的字段信息依次排列;在所有的字段信息之后设置有效数据,以生成主体数据。
进一步地,主体数据的描述信息还包括主体数据长度的校验码;确定主体数据的描述信息的步骤包括:将预定的字符串作为数据标识,设置于描述信息的前x3个字节;将第一标识设置于x3个字节后且与x3个字节相邻的x4个字节的前y3位;将主体数据的长度设置于x4个字节的后y4位,其中,y3位和y4位构成x4个字节;以及将校验码设置于描述信息的最后x5个字节,其中,x3、x4、x5、y3和y4均为自然数;根据主体数据和主体数据的描述信息,生成数据记录的步骤包括:将主体数据设置于主体数据的描述信息之后,生成数据记录。
另一方面,为实现上述目的,本发明提供了另一种数据传输方法。
该数据传输方法应用于接收装置,数据传输方法包括:接收发送装置发送的数据包,其中,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;解析数据包,以得到数据包中各条数据记录中的主体数据。
进一步地,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
进一步地,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
进一步地,解析数据包,以得到数据包中各条数据记录中的主体数据的步包括:解析数据包得到至少一条数据记录;对数据记录中的数据进行反序列化;提取反序列化后的数据记录中的主体数据。
进一步地,主体数据的描述信息还包括主体数据长度的校验码,解析数据包得到至少一条数据记录的步骤包括:根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码;提取当前解析出的数据记录中的主体数据长度的校验码;判断计算得到的校验码和提取得到的校验码是否相同;若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
进一步地,解析数据包得到至少一条数据记录的步骤包括:当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内;若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
进一步地,解析数据包得到至少一条数据记录的步骤包括:当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同;若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
进一步地,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻;元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后;解析数据包得到至少一条数据记录的步骤包括:当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
又一方面,为实现上述目的,本发明提供了一种数据发送装置。
该数据发送装置包括:获取模块,用于获取数据传输指令,其中,数据传输指令用于指示发送装置发送数据包至接收装置,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;发送模块,用于发送数据包至接收装置。
又一方面,为实现上述目的,本发明提供了一种数据接收装置。
该数据接收装置包括:接收模块,用于接收发送装置发送的数据包,其中,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;解析模块,用于解析数据包,以得到数据包中各条数据记录中的主体数据。
又一方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
又一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的数据传输方法、接收装置、发送装置、计算机设备和计算机可读存储介质中,发送装置在获取到指示其发送数据包的数据传输指令后,将数据包发送至接收装置,其中,该数据包包括至少一条数据记录,该数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度,发送至接收装置后,接收装置能够根据数据标识获知和解析出数据包中的各条数据记录,进一步根据主体数据的描述信息解析出主体数据,也即解析出数据记录中发送装置传输的目的数据本身,因此,该数据传输方法能够对多条数据记录进行聚合传输,能够减少发送端与服务端之前的通信带宽,同时减少服务端的响应压力。
附图说明
图1为本发明实施例一提供的数据传输方法的步骤流程图;
图2为本发明实施例二提供的数据传输方法的步骤流程图;
图3为本发明实施例三提供的数据发送装置的框图;
图4为本发明实施例四提供的数据接收装置的框图;
图5为本发明实施例五提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种数据传输方法、接收装置、发送装置、计算机设备和计算机可读存储介质,在本发明提供的数据传输方法中,发送装置获取到数据传输指令后,将数据包发送至接收装置;接收装置接收到发送装置发送的数据包后,解析数据包。其中,被传输的数据包包括至少一条数据记录,该数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。
发送装置将上述结构的数据包发送至接收装置后,接收装置能够基于上述数据记录的结构,能够从数据包中解析出各条数据记录,并进一步得到主体数据,具体地,接收装置能够通过数据标识识别出数据记录,对于识别出的一条数据记录,通过第一标识和主体数据的长度能够确定出主体数据。
从上述过程可以看出,本发明提供的数据传输方法在传输数据时,可将多条数据分别形成数据记录,然后将多条数据记录拼接形成数据包,对数据包进行传输,使得多条数据能够聚合后传输,应用于现有技术中将移动终端上收集到的数据传输至服务端的场景时,与将多条数据分别传输至服务端相比,将多条数据聚合后传输,能够减少发送端与服务端之前的通信带宽,同时减少服务端的响应压力。
关于本发明提供的数据传输方法、接收装置、发送装置、计算机设备和计算机可读存储介质的具体实施例,将在下文中详细描述。
实施例一
本发明实施例提供了一种数据传输方法,该数据传输方法应用于数据发送装置,其中数据发送装置与数据接收装置之间约定遵循预设的聚合数据传输协议,该聚合传输协议包括数据包的具体结构,通过该方法,能够将多条数据聚合后发送至数据接收装置,减少发送装置与接收装置之前的通信带宽,同时减少接收装置的响应压力,具体地,该实施例提供的数据传输方法包括如下的步骤S101和步骤S102。
步骤S101:获取数据传输指令。
其中,数据传输指令用于指示发送装置发送数据包至接收装置。一种情况下,数据发送装置可接收外部发送的数据传输指令;另一种情况下,数据发送装置设置数据传输规则,例如基于传输时间或数据量的传输规则,在满足数据传输规则时触发数据传输指令的产生;又一种情况下,数据传输指令基于数据发送装置内部的其他事件触发产生,例如,当数据发送装置所在的终端被用户操作时,基于该操作事件触发数据传输指令产生。或者,也可以为其他情况,本申请对此并不进行限定。
数据包包括至少一条数据记录,当数据包包括多条数据记录时,各条数据记录依次拼接。该数据记录包括主体数据和主体数据的描述信息,其中,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。数据标识为数据记录的标识符,可用于区别本发明中的数据记录与其他数据,发送装置和接收装置两端商定一个特定字符串作为标识符后,发送装置将该特定字符串作为数据标识,接收装置接收到数据标识为该特定字符串的数据记录时,即可识别出接收到的数据记录。第一标识通过不同的字符表征主体数据是否包括元数据,例如,第一标识为A字符时,表征主体数据包括元数据,第一标识为B字符时,表征主体数据不包括元数据。
可选地,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据只包括有效数据。元数据为描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能。
可选地,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。第二标识通过不同的字符表征当前字段信息后是否还存在其他字段信息,例如,第二标识为C字符时,表征当前字段信息后还存在其他字段信息,第二标识为D字符时,表征当前字段信息后不存在其他字段信息。
发送装置通过数据标识表征该数据记录,通过第一标识表征主体数据中是否包括元数据,当主体数据不包括元数据,设置第一标识为表征主体数据中不包括元数据的值,并根据有效数据的长度得到主体数据的长度;当主体数据包括元数据,设置第一标识为表征主体数据中包括元数据的值,并根据有效数据的长度和字段信息的长度的和得到主体数据的长度。其中,有效数据的元数据包括若干字段的键值对,字段的键值对包括字段名称和字段值,通过字段的键值对构建字段信息,在构建每一个字段信息时,计算字段名称的长度、字段值的长度,并通过第二标识表征当前字段信息后是否还存在其他字段信息,若当前字段信息后还存在其他字段信息,设置第二标识为表征当前字段信息后还存在其他字段信息的值,若当前字段信息后不存在其他字段信息,设置第二标识为表征当前字段信息后不存在其他字段信息的值,所有字段的字段信息构建后,即可计算得到数据记录中字段信息的长度。
步骤S102:发送数据包至接收装置。
其中,发送装置发送数据包至接收装置时,可采用现有技术中任意的数据发送方式进行发送,本申请对此并不进行限定。
采用该实施例提供的数据传输方法,发送装置在获取到指示其发送数据包的数据传输指令后,将数据包发送至接收装置,其中,该数据包包括至少一条数据记录,该数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度,发送至接收装置后,接收装置能够根据数据标识获知和解析出数据包中的各条数据记录,进一步根据主体数据的描述信息解析出主体数据,也即解析出数据记录中发送装置传输的目的数据本身,因此,该数据传输方法能够对多条数据记录进行聚合传输,能够减少发送端与服务端之前的通信带宽,同时减少服务端的响应压力。该实施例提供的数据传输方法,可以应用于客户端向服务端上报数据,也可以应用于服务器与服务器之间的数据传输,H5页面传输的过程等,除此之外该数据传输方法还可以应用于数据文件存储,使得数据接收装置在进行文件存储时,能够节省存储空间和方便文件切割。
可选地,在一种实施例中,在发送数据包至接收装置之前,数据传输方法还包括:对数据记录中的数据进行序列化;将序列化后的各条数据记录依次拼接得到数据包。
具体而言,在发送数据包之前,对数据记录中的数据进行序列化,形成二进制数,然后各条二进制格式的数据记录拼接得到数据包。在对数据记录中的数据进行序列化时,可对有效数据、字段信息以及主体数据的描述信息分别进行序列化,也可对数据记录整体进行序列化。
采用该实施例提供的数据传输方法,数据包以二进制格式进行传输,与直接传输明文相比,不易暴露数据记录中有效数据的内容,提升传输的数据内容的安全性;数据二进制化以后,能够减小传输数据量,节省带宽,提升传输效率,与本发明提供的数据记录的特定数据结构技术手段相结合,后者能够实现多条数据记录的聚合和拆分,前者有利于减小数据记录聚合后再传输的数据量,减小数据聚合受带宽等的影响,因而能够进一步提升数据聚合能力。
可选地,在一种实施例中,在发送数据包至接收装置的步骤之前,数据传输方法还包括:将待传输的数据内容添加至预定义的数据对象,以得到有效数据;确定数据内容对应的元数据,其中,元数据包括若干字段;当数据内容具有元数据时,根据元数据中字段的字段名称和字段值生成字段信息;根据有效数据和字段信息生成主体数据;当数据内容不具有元数据时,根据有效数据生成主体数据;确定主体数据的描述信息;根据主体数据和主体数据的描述信息,生成数据记录。
具体而言,可预定义一种数据对象,将待传输的数据内容添加至数据对象得到有效数据,从而使得不同数据记录的有效数据能够具有统一的数据格式,规范有效数据的内容和形式。可选地,基于protobuf定义数据对象,统一数据模型。在确定数据内容对应的元数据时,根据数据内容自身的要求不同,一些数据内容具有元数据,另一些数据内容不具有元数据,元数据可以包括若干字段,每个字段的字段名称和字段的值形成键值对。针对具有元数据的数据内容,根据元数据中字段的键值对生成每个字段的字段信息,主体数据包括有效数据和所有的字段信息;针对不具有元数据的数据内容,主体数据仅包括有效数据。
采用该实施例提供的数据传输方法,发送装置将数据采用统一的数据格式生成有效数据,从而接收装置接收到数据记录解析出有效数据后,能够得到统一数据格式的有效数据,便于接收装置一端进行数据的处理。
可选地,在一种实施例中,将待传输的数据内容添加至预定义的数据对象,以得到有效数据的步骤包括:获取公共字段添加至数据对象,以得到中间对象;将待传输的数据中的私有字段添加至中间对象,以得到有效数据。
具体而言,在一些数据传输的场景下,待传输的数据中会包括公共字段和私有字段,其中,不同的待传输数据中会存在部分公共字段相同,部分公共字段不同,将该待传输数据直接作为有效数据传输至接收装置时,接收装置需要适配不同的规则,解析成本较大。基于此,在该实施例中,首先获取统一的公共字段添加至数据对象,例如设备的型号、客户端应用程序的版本等,将这些字段抽象为公共字段,写在数据对象中得到中间对象,再将待传输的数据中的私有字段添加至中间对象,得到有效数据,从而接收装置在提取出该有效数据进行解析时,能够解析到统一的公共字段,不同的有效数据只需要分别解析出私有字段即可。在获取公共字段时,可依数据传输场景不同而采用不同的获取方式。例如,将该执行实施例提供的数据传输方法的发送装置以软件开发工具包(software developmentkit,SDK)的方式设置于终端时,被采集数据的其他客户端调用该SDK时,调用请求中会携带终端的一些公共字段,从而该发送装置通过这些调用请求即可获取到公共字段。
例如,当待传输的数据为与用户购买行为相关的数据,响应用户购买操作的应用程序客户端调用上述SDK,发送装置通过该调用请求获得公共字段,包括购买时间、终端型号等信息,并将获取到的公共字段添加至预定义的数据对象,得到中间对象,再将待传输数据中的私有字段,包括购买物品的相关信息等,添加至中间对象,以得到有效数据。
采用该实施例提供的数据传输方法,能够使不同数据记录的有效数据中具有统一的公共字段,进而减少接收装置解析数据的成本。
可选地,在一种实施例中,根据元数据中字段的字段名称和字段值生成字段信息的步骤包括:将字段名称的长度设置于字段信息的前x1个字节;将字段名称设置于前x1个字节后且与前x1个字节相邻的字节;将第二标识设置于字段名称后且与字段名称相邻的x2个字节的前y1位;将字段值的长度设置于x2个字节的后y2位;将字段值设置于x2个字节后且与x2个字节相邻,其中,x1、x2、y1和y2均为自然数。
具体而言,将字段名称的长度、第二标识和字段值的长度分别设置为固定数量的字节数,且字节数不固定的字段名称位于字段名称的长度和第二标识之间。在构建字段信息时,首先计算字段名称的长度设置于前x1个字节;然后再将字段名称设置于前x1个字节之后;再根据该字段信息后是否还存在其他字段信息来设置第二标识,若当前字段信息后还存在其他字段信息,设置第二标识为表征当前字段信息后还存在其他字段信息的值,若当前字段信息后不存在其他字段信息,设置第二标识为表征当前字段信息后不存在其他字段信息的值,将第二标识设置于字段名称之后的x2个字节的前y1位;再计算字段值的长度设置于该x2个字节的后y2位;最后在该x2个字节后设置字段值。
基于上述数据结构的字段信息,接收装置在解析字段信息时,获取解析到字段名称的长度数量的内容,解析到字段名称,再获取第二标识和字段值的长度的内容,先解析前y1位得到第二标识,再解析后y2位得到字段值的长度,最后获取解析到字段值的长度的内容,即可解析到字段值,字段名称和字段值构成字段的键值对。
在一种具体的实施例中,设置x1=1,x2=4,y1=1,y2=31,如下表1所示:
表1字段信息结构表
将字段名称的长度name_size设置为1个字节,具体为8位无符号数,最小值为1,最大值为256,代表meta_name的长度;meta_name对应字段名称,可包含任意字符(支持utf-8名称),但至少有要1个字符;第二标识moremeta和字段值的长度meta_size设置4个字节,4个字节中的最高位为第二标识,其中,第二标识为1时,表征当前字段信息后还存在其他字段信息,第二标识为0时,表征当前字段信息后不存在其他字段信息。后31位为字段值的长度meta_size,无符号,最小值为0,最大值为0x7FFFFFFF,代表meta数据的字节数,字段值的长度meta_size为0时,可表征后续的meta数据段不存在(或理解为空)。
在解析字段信息时,首先获取第1个字节的内容,解析到字段名称的长度,然后再获取解析到字段名称的长度数量的内容,解析到字段名称meta_name,再获取4个字节的内容,解析该4个字节的最高位得到第二标识,解析该4个字节的后31位得到字段值的长度,最后获取解析到字段值的长度的内容,即可解析到字段值Meta。
采用该实施例提供的数据传输方法,基于上述数据结构的字段信息,字段名称和字段值均无需设置标识符,依次解析各个部分即可获得字段名称和字段值,能够减少数据记录中的数据描述信息,减少数据传输量。
可选地,在一种实施例中,根据有效数据和字段信息生成主体数据的步骤包括:将元数据中各个字段对应的字段信息依次排列;在所有的字段信息之后设置有效数据,以生成主体数据。
具体而言,第二标识表征当前字段信息后还存在其他字段信息时,在当前字段信息的字段值后设置下一个字段信息的字段名称的长度,第二标识表征当前字段信息后不存在其他字段信息时,在当前字段信息的字段值后设置有效数据,所有字段信息依次排列后,拼接有效数据构成主体数据。
采用该实施例提供的数据传输方法,多个字段信息依次排列后与有效数据拼接构成主体数据,主体数据和字段信息均无需设置标识符,依次解析各个部分即可获得每个字段信息对应的字段名称和字段值,以及有效数据,能够减少数据记录中的数据描述信息,减少数据传输量。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码;确定主体数据的描述信息的步骤包括:将预定的节字符串作为数据标识,设置于描述信息的前x3个字节;将第一标识设置于x3个字节后且与x3个字节相邻的x4个字节的前y3位;将主体数据的长度设置于x4个字节的后y4位,其中,y3位和y4位构成x4个字节;以及将校验码设置于描述信息的最后x5个字节,其中,x3、x4、x5、y3和y4均为自然数;根据主体数据和主体数据的描述信息,生成数据记录的步骤包括:将主体数据设置于主体数据的描述信息之后,生成数据记录。
具体而言,主体数据的描述信息还包括主体数据长度的校验码,发送装置在组装数据时,形成主体数据后计算出主体数据长度,再利用预定算法对主体数据长度进行计算以得到该校验码,将该校验码置入数据记录进行传输,在接收装置一端能够根据该校验码对接收到的主体数据进行校验,提升传输数据的有效性。
在该实施例中,将数据标识、第一标识和主体数据的长度、校验码分别设置为固定数量的字节数,且字节数不固定的主体数据位于校验码之后,在构建主体数据的描述信息时,首先将预定的字符串作为数据标识,设置于描述信息的前x3个字节,用于标识数据记录,然后根据有效数据是否具有元数据来设置第一标识,当有效数据具有元数据时,第一标识设置为表征主体数据包括元数据的值,当有效数据不具有元数据时,第一标识设置为表征主体数据不包括元数据的值,将第一标识设置于数据标识之后的x4个字节的前y3位;当有效数据具有元数据时,计算有效数据的长度和字段信息的长度得到主体数据的长度,设置于该x4个字节的后y4位,当有效数据不具有元数据时,计算有效数据的长度得到主体数据的长度,设置于该x4个字节的后y4位;再根据主体数据的长度计算得到校验码,设置于主体数据的长度之后的x5个字节,完成主体数据的描述信息的设置,再将主体数据设置于该描述信息之后,即可生成数据记录。
基于上述数据结构的数据记录,接收装置在接收到数据记录后,基于数据标识中的特定字符串识别出数据记录,然后在数据标识后间隔x4个字节提取x5个字节的内容,得到校验码,在校验码后至下一个数据标识之间提取主体数据,可根据校验码对主体数据进行校验,校验通过后,在数据标识后提取x4个字节的前y3位的内容,得到第一标识,根据第一标识确定主体数据的结构,当第一标识表征主体数据包括元数据时,按照上述解析字段信息的过程对主体数据中的字段信息进行解析得到元数据,再提取有效数据;当主体数据不包括元数据时,直接提取主体数据得到有效数据。
在一种具体的实施例中,设置x3=4,x4=4,x5=1,y3=1,y4=31,如下表2所示:
表2数据记录结构表
magic_num(4bytes) | metabit_and_size(4bytes) | size_checksum(1byte) | data(size bytes) |
将预定的节字符串作为数据标识设置于描述信息的前4个字节,数据标识为4字节字符串,无需考虑字节序;将第一标识设置于中间4个字节的最高位,用于表示data中是否有meta数据,其中,第一标识为1时,表征主体数据data中存在有meta数据,具体主体数据data中包含一个或多个meta数据,主体数据data的具体结构可参见上文,第一标识为0时,表征主体数据data中没有meta数据,主体数据data即为有效数据payload,主体数据的长度size就是有效数据payload的字节数;将主体数据的长度size设置于中间4个字节的后31位,无符号,最小值为0,最大值为0x7FFFFFFF,用于代表data的字节数,为0时有效数据payload段不存在(或理解为空);校验码设置于第5个字节,接收装置能够根据校验码对主体数据进行校验。
实施例二
本发明实施例提供了一种数据传输方法,该数据传输方法应用于数据接收装置,相应的技术特征也可参考上述实施例一的相关描述。通过该实施例提供的方法,能够接收并解析发送装置发送到的聚合数据,减少发送装置与接收装置之前的通信带宽,同时减少接收装置的响应压力,具体地,该实施例提供的数据传输方法包括如下的步骤S201和步骤S202。
步骤S201:接收发送装置发送的数据包。
数据包包括至少一条数据记录,当数据包包括多条数据记录时,各条数据记录依次拼接。该数据记录包括主体数据和主体数据的描述信息,其中,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。数据标识为数据记录的标识符,可用于区别本发明中的数据记录与其他数据,发送装置和接收装置两端商定一个特定字符串作为标识符后,发送装置将该特定字符串作为数据标识,接收装置接收到数据标识为该特定字符串的数据记录时,即可识别出接收到的数据记录。第一标识通过不同的字符表征主体数据是否包括元数据,例如,第一标识为A字符时,表征主体数据包括元数据,第一标识为B字符时,表征主体数据不包括元数据。
步骤S202:解析数据包,以得到数据包中各条数据记录中的主体数据。
在该步骤中,接收装置在解析数据包时,通过数据标识确定该数据记录,然后进一步通过第一标识确定主体数据中是否包括元数据以及主体数据的长度对数据记录解析得到主体数据。
可选地,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息,;当第一标识表征主体数据中不存在元数据时,主体数据只包括有效数据。元数据为描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能。
可选地,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值,第二标识通过不同的字符表征当前字段信息后是否还存在其他字段信息,例如,第二标识为C字符时,表征当前字段信息后还存在其他字段信息,第二标识为D字符时,表征当前字段信息后不存在其他字段信息。
其中,当主体数据不包括元数据,则根据主体数据的长度获取主体数据,也即得到有效数据;当主体数据包括元数据,则通过字段信息获得字段的键值对,也即字段名称和字段值,所有字段的键值对即为有效数据的元数据,其中,在解析每一个字段信息时,通过第二标识确定当前字段信息后是否还存在其他字段信息,若当前字段信息后还存在其他字段信息,继续按照字段信息的结构解析字段信息,若当前字段信息后不存在其他字段信息,则根据已解析的字段信息的长度和主体数据的长度能够得到有效数据的长度,在当前字段信息后获取有效数据的长度的数据,即可得到有效数据。
其中,接收装置接收发送装置发送的数据包时,可采用现有技术中任意的数据接收方式进行接收,本申请对此并不进行限定。
采用该实施例提供的数据传输方法,发送装置在获取到指示其发送数据包的数据传输指令后,将数据包发送至接收装置,其中,该数据包包括至少一条数据记录,该数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度,发送至接收装置后,接收装置能够根据数据标识获知和解析出数据包中的各条数据记录,进一步根据主体数据的描述信息解析出主体数据,也即解析出数据记录中发送装置传输的目的数据本身,因此,该数据传输方法能够对多条数据记录进行聚合传输,能够减少发送端与服务端之前的通信带宽,同时减少服务端的响应压力。
可选地,在一种实施例中,在解析数据包,以得到数据包中各条数据记录中的主体数据的步骤包括:解析数据包得到至少一条数据记录;对数据记录中的数据进行反序列化;提取反序列化后的数据记录中的主体数据。
具体而言,发送装置在发送数据包之前,对数据记录中的数据进行序列化,形成二进制数,然后各条二进制格式的数据记录拼接得到数据包。接收装置解析数据包后,解析数据包得到至少一条数据记录,然后对数据记录中的数据进行反序列化,即可得到原数据。
采用该实施例提供的数据传输方法,数据包以二进制格式进行传输,与直接传输明文相比,不易暴露数据记录中有效数据的内容,提升传输的数据内容的安全性;数据二进制化以后,能够减小传输数据量,节省带宽,提升传输效率,与本发明提供的数据记录的特定数据结构技术手段相结合,后者能够实现多条数据记录的聚合和拆分,前者有利于减小数据记录聚合后再传输的数据量,减小数据聚合受带宽等的影响,因而能够进一步提升数据聚合能力。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码,解析数据包得到至少一条数据记录的步骤包括:根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码;提取当前解析出的数据记录中的主体数据长度的校验码;判断计算得到的校验码和提取得到的校验码是否相同;若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
具体而言,主体数据的描述信息还包括主体数据长度的校验码,发送装置在组装数据时,形成主体数据后计算出主体数据长度,再利用预定算法对主体数据长度进行计算以得到该校验码,将该校验码置入数据记录进行传输,在接收装置根据接收到的主体数据计算出主体数据长度,再利用相同的预定算法对主体数据长度进行计算以得到一个校验码,接收装置对比自身计算出的校验码和接收到的数据记录中的校验码,不一致时,说明主体数据在传输过程中发生了篡改,此时丢弃当前解析出的数据记录,减少数据传输过程中的脏数据和坏包,提升传输数据的有效性。
可选地,在一种实施例中,解析数据包得到至少一条数据记录的步骤包括:当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内;若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
具体而言,接收装置在解析数据包的过程中,对解析到的字段名称的长度进行判断,例如设置字段名称的长度为最小值为1,最大值为256,不再该范围内的数据记录丢弃,能够减少数据传输过程中的脏数据,提升传输数据的有效性。
可选地,在一种实施例中,解析数据包得到至少一条数据记录的步骤包括:当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同;若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
具体而言,接收装置在解析数据包的过程中,对解析到的字段名称进行判断,若一条数据记录中包括雷同的字段名称,则将该数据记录丢弃,能够减少数据传输过程中的脏数据,提升传输数据的有效性。
可选地,在一种实施例中,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻;元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后;解析数据包得到至少一条数据记录的步骤包括:当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
具体而言,在解析字段信息时,首先获取字段名称的长度的内容,解析到字段名称的长度,然后再获取解析到字段名称的长度数量的内容,解析到字段名称,再获取第二标识和字段值的长度的内容,先解析前y1位得到第二标识,再解析后y2位得到字段值的长度,最后获取解析到字段值的长度的内容,即可解析到字段值,字段名称和字段值构成字段的键值对。
在解析出一个字段信息后,若上述不等式不成立,表明数据记录中字段信息和/或有效数据的数据异常,此时将该数据记录丢弃,能够减少数据传输过程中的脏数据,提升传输数据的有效性。
实施例三
对应于上述实施例一,本发明实施例三提供了一种数据发送装置,相应的技术特征可参考上述实施例一的相关描述。图3为本发明实施例三提供的数据发送装置的框图,如图3所示,该装置包括获取模块301和发送模块302。
其中,获取模块301用于获取数据传输指令,其中,数据传输指令用于指示发送装置发送数据包至接收装置,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度。发送模块302用于发送数据包至接收装置。
可选地,在一种实施例中,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
可选地,在一种实施例中,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
可选地,在一种实施例中,数据发送装置还包括序列化模块,用于在发送数据包至接收装置之前,对数据记录中的数据进行序列化,并将序列化后的各条数据记录依次拼接得到数据包。
可选地,在一种实施例中,数据发送装置还包括处理模块,用于在发送数据包至接收装置之前,将待传输的数据内容添加至预定义的数据对象,以得到有效数据,确定数据内容对应的元数据,其中,元数据包括若干字段,当数据内容具有元数据时,根据元数据中字段的字段名称和字段值生成字段信息,根据有效数据和字段信息生成主体数据,当数据内容不具有元数据时,根据有效数据生成主体数据,确定主体数据的描述信息,根据主体数据和主体数据的描述信息,生成数据记录。
可选地,在一种实施例中,处理模块在将待传输的数据内容添加至预定义的数据对象,以得到有效数据时,具体执行的步骤包括:获取公共字段添加至数据对象,以得到中间对象;将待传输的数据中的私有字段添加至中间对象,以得到有效数据。
可选地,在一种实施例中,处理模块在根据元数据中字段的字段名称和字段值生成字段信息时,具体执行的步骤包括:将字段名称的长度设置于字段信息的前x1个字节;将字段名称设置于前x1个字节后且与前x1个字节相邻的字节;将第二标识设置于字段名称后且与字段名称相邻的x2个字节的前y1位;将字段值的长度设置于x2个字节的后y2位,其中,y1位和y2位构成x2个字节;将字段值设置于x2个字节后且与x2个字节相邻,其中,x1、x2、y1和y2均为自然数。
可选地,在一种实施例中,处理模块在根据有效数据和字段信息生成主体数据时,具体执行的步骤包括:将元数据中各个字段对应的字段信息依次排列;在所有的字段信息之后设置有效数据,以生成主体数据。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码;处理模块在确定主体数据的描述信息时,具体执行的步骤包括:将预定的字符串作为数据标识,设置于描述信息的前x3个字节;将第一标识设置于x3个字节后且与x3个字节相邻的x4个字节的前y3位;将主体数据的长度设置于x4个字节的后y4位,其中,y3位和y4位构成x4个字节;以及将校验码设置于描述信息的最后x5个字节,其中,x3、x4、x5、y3和y4均为自然数;处理模块在根据主体数据和主体数据的描述信息,生成数据记录时,具体执行的步骤包括:将主体数据设置于主体数据的描述信息之后,生成数据记录。
实施例四
对应于上述实施例二,本发明实施例四提供了一种数据接收装置,相应的技术特征可参考上述实施例一和实施例二的相关描述。图4为本发明实施例四提供的数据接收装置的框图,如图4所示,该装置包括接收模块401和解析模块402。
接收模块401用于接收发送装置发送的数据包,其中,数据包包括至少一条数据记录,数据记录包括主体数据和主体数据的描述信息,主体数据的描述信息包括数据标识、表征主体数据是否包括元数据的第一标识和主体数据的长度;解析模块402用于解析数据包,以得到数据包中各条数据记录中的主体数据。
可选地,在一种实施例中,当第一标识表征主体数据包括元数据时,主体数据包括有效数据和与元数据中字段对应的字段信息;当第一标识表征主体数据中不存在元数据时,主体数据包括有效数据。
可选地,在一种实施例中,字段信息包括字段名称的长度、字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和字段值。
可选地,在一种实施例中,解析模块402包括:解析单元,用于解析数据包得到数据包中至少一条数据记录;反序列化单元,用于对数据记录中的数据进行反序列化;提取单元,用于提取反序列化后的数据记录中的主体数据。
可选地,在一种实施例中,主体数据的描述信息还包括主体数据长度的校验码,解析单元包括第一校验子单元,用于根据预定算法计算当前解析出的数据记录中主体数据的长度的校验码,提取当前解析出的数据记录中的主体数据长度的校验码,判断计算得到的校验码和提取得到的校验码是否相同,若计算得到的校验码和提取得到的校验码不同,则丢弃当前解析出的数据记录。
可选地,在一种实施例中,解析单元包括第二校验子单元,用于当解析到字段名称的长度时,判断当前解析出的字段名称的长度是否在预设范围内,若当前解析出的字段名称的长度不在预设范围内,则丢弃当前解析的数据记录。
可选地,在一种实施例中,解析模单元包括第三校验子单元,用于当解析到字段名称时,判断当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称是否相同;若当前解析出的字段名称与当前解析的数据记录中已解析出的字段名称相同,则丢弃当前解析的数据记录。
可选地,在一种实施例中,字段名称的长度占用字段信息的前x1个字节,字段名称位于前x1个字节后且与前x1个字节相邻,第二标识位于字段名称后且占用与字段名称相邻的x2个字节的前y1位,字段值的长度占用x2个字节的后y2位,字段值位于x2个字节后且与x2个字节相邻;元数据中各个字段对应的字段信息依次排列,有效数据位于所有的字段信息之后;主体数据位于主体数据的描述信息之后。解析单元包括第四校验子单元,用于当解析出一个字段信息后,判断以下不等式是否成立:
parsed_bytes+x1+x2+name_size+meta_size<=size
其中,parsed_bytes为当前解析的数据记录中已解析出的字段信息的字节数,name_size为当前解析出的字段信息中字段名称的字节数,meta_size为当前解析出的字段信息中字段值的字节数,size为当前解析的数据记录中主体数据的长度;若不等式不成立,则丢弃当前解析的数据记录。
实施例五
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图5所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图5所示。需要指出的是,图5仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的数据发送装置,或实施例四的数据接收装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器012在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如数据传输方法等。
实施例六
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据接收装置或数据发送装置,被处理器执行时实现实施例一或实施例二的数据传输方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (13)
1.一种数据传输方法,其特征在于,应用于发送装置,所述数据传输方法包括:
获取数据传输指令,其中,所述数据传输指令用于指示所述发送装置发送数据包至接收装置,所述数据包包括至少一条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,所述数据标识为所述数据记录的标识符,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和所述元数据中字段对应的字段信息,所述字段信息包括字段名称的长度、所述字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和所述字段值;
发送所述数据包至所述接收装置,
在发送所述数据包至所述接收装置之前,所述数据传输方法还包括:将待传输的数据内容添加至预定义的数据对象,以得到所述有效数据;确定所述数据内容对应的所述元数据,其中,所述元数据包括若干字段;当所述数据内容具有所述元数据时,根据所述元数据中字段的字段名称和字段值生成所述字段信息;根据所述有效数据和所述字段信息生成所述主体数据。
2.根据权利要求1所述的数据传输方法,其特征在于,
当所述第一标识表征所述主体数据中不存在元数据时,所述主体数据包括所述有效数据。
3.根据权利要求1所述的数据传输方法,其特征在于,在发送所述数据包至所述接收装置的步骤之前,所述数据传输方法还包括:
对所述数据记录中的数据进行序列化;
将序列化后的各条所述数据记录依次拼接得到所述数据包。
4.根据权利要求1所述的数据传输方法,其特征在于,在发送所述数据包至所述接收装置之前,所述数据传输方法还包括:
当所述数据内容不具有所述元数据时,根据所述有效数据生成所述主体数据;
确定所述主体数据的描述信息;
根据所述主体数据和所述主体数据的描述信息,生成所述数据记录。
5.根据权利要求1所述的数据传输方法,其特征在于,将待传输的数据内容添加至预定义的数据对象,以得到所述有效数据的步骤包括:
获取公共字段添加至所述数据对象,以得到中间对象;
将所述待传输的数据中的私有字段添加至所述中间对象,以得到所述有效数据。
6.根据权利要求1所述的数据传输方法,其特征在于,根据所述元数据中字段的字段名称和字段值生成所述字段信息的步骤包括:
将所述字段名称的长度设置于所述字段信息的前x1个字节;
将所述字段名称设置于所述前x1个字节后且与所述前x1个字节相邻的字节;
将所述第二标识设置于所述字段名称后且与所述字段名称相邻的x2个字节的前y1位;
将所述字段值的长度设置于所述x2个字节的后y2位,其中,y1位和y2位构成所述x2个字节;
将所述字段值设置于所述x2个字节后且与所述x2个字节相邻,其中,x1、x2、y1和y2均为自然数。
7.根据权利要求6所述的数据传输方法,其特征在于,根据所述有效数据和所述字段信息生成所述主体数据的步骤包括:
将所述元数据中各个字段对应的字段信息依次排列;
在所有的所述字段信息之后设置所述有效数据,以生成所述主体数据。
8.根据权利要求7所述的数据传输方法,其特征在于,
所述主体数据的描述信息还包括所述主体数据长度的校验码;
确定所述主体数据的描述信息的步骤包括:
将预定的字符串作为所述数据标识,设置于所述描述信息的前x3个字节;
将所述第一标识设置于所述x3个字节后且与所述x3个字节相邻的x4个字节的前y3位;
将所述主体数据的长度设置于所述x4个字节的后y4位,其中,y3位和y4位构成所述x4个字节;以及
将所述校验码设置于所述描述信息的最后x5个字节,其中,x3、x4、
x5、y3和y4均为自然数;
根据所述主体数据和所述主体数据的描述信息,生成所述数据记录的步骤包括:将所述主体数据设置于所述主体数据的描述信息之后,生成所述数据记录。
9.一种数据传输方法,其特征在于,应用于接收装置,所述数据传输方法包括:
接收发送装置发送的数据包,其中,所述数据包包括至少一条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,所述数据标识为所述数据记录的标识符,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和所述元数据中字段对应的字段信息,所述字段信息包括字段名称的长度、所述字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和所述字段值;
解析所述数据包,以得到所述数据包中各条数据记录中的所述主体数据,
其中,当所述主体数据包括元数据,通过所述字段信息获得所述字段名称和所述字段值,在解析每一个所述字段信息时,通过所述第二标识确定当前字段信息后是否还存在其他字段信息,若所述当前字段信息后还存在其他字段信息,继续按照字段信息的结构解析字段信息,若所述当前字段信息后不存在其他字段信息,则根据已解析的字段信息的长度和主体数据的长度得到所述有效数据的长度,在所述当前字段信息后获取有效数据的长度的数据,得到所述有效数据。
10.一种数据发送装置,其特征在于,包括:
获取模块,用于获取数据传输指令,其中,所述数据传输指令用于指示所述发送装置发送数据包至接收装置,所述数据包包括至少一条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,所述数据标识为所述数据记录的标识符,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和所述元数据中字段对应的字段信息,所述字段信息包括字段名称的长度、所述字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和所述字段值;
发送模块,用于发送所述数据包至所述接收装置,
处理模块,用于在发送数据包至接收装置之前,将待传输的数据内容添加至预定义的数据对象,以得到所述有效数据,确定所述数据内容对应的所述元数据,其中,所述元数据包括若干字段,当所述数据内容具有所述元数据时,根据所述元数据中字段的字段名称和字段值生成所述字段信息,根据所述有效数据和所述字段信息生成所述主体数据。
11.一种数据接收装置,其特征在于,包括:
接收模块,用于接收发送装置发送的数据包,其中,所述数据包包括至少一条数据记录,所述数据记录包括主体数据和所述主体数据的描述信息,所述主体数据的描述信息包括数据标识、表征所述主体数据是否包括元数据的第一标识和所述主体数据的长度,所述数据标识为所述数据记录的标识符,当所述第一标识表征所述主体数据包括元数据时,所述主体数据包括有效数据和所述元数据中字段对应的字段信息,所述字段信息包括字段名称的长度、所述字段名称、表征当前字段信息后是否还存在其他字段信息的第二标识、字段值的长度和所述字段值;
解析模块,用于解析所述数据包,以得到所述数据包中各条数据记录中的主体数据,
其中,当所述主体数据包括元数据,通过所述字段信息获得所述字段名称和所述字段值,在解析每一个所述字段信息时,通过所述第二标识确定当前字段信息后是否还存在其他字段信息,若所述当前字段信息后还存在其他字段信息,继续按照字段信息的结构解析字段信息,若所述当前字段信息后不存在其他字段信息,则根据已解析的字段信息的长度和主体数据的长度得到所述有效数据的长度,在所述当前字段信息后获取有效数据的长度的数据,得到所述有效数据。
12.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述方法的步骤。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至9任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083107.6A CN112788078B (zh) | 2019-11-07 | 2019-11-07 | 数据传输方法、接收装置、发送装置和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911083107.6A CN112788078B (zh) | 2019-11-07 | 2019-11-07 | 数据传输方法、接收装置、发送装置和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112788078A CN112788078A (zh) | 2021-05-11 |
CN112788078B true CN112788078B (zh) | 2023-03-24 |
Family
ID=75747960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911083107.6A Active CN112788078B (zh) | 2019-11-07 | 2019-11-07 | 数据传输方法、接收装置、发送装置和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112788078B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868182B (zh) * | 2021-09-28 | 2024-10-01 | 歌尔科技有限公司 | 一种数据压缩方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685143A (zh) * | 2012-05-23 | 2012-09-19 | 北京新媒传信科技有限公司 | 音频数据的传输方法以及客户端、服务器 |
CN102889891A (zh) * | 2011-07-21 | 2013-01-23 | 日立汽车系统株式会社 | 地图数据分发服务器、地图数据分发系统及地图数据分发方法 |
CN103095758A (zh) * | 2011-11-01 | 2013-05-08 | 北大方正集团有限公司 | 一种分布式文件系统及该系统中处理文件数据的方法 |
CN105574130A (zh) * | 2015-12-14 | 2016-05-11 | 浪潮通用软件有限公司 | 一种数据传输方法及业务系统 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
CN110099087A (zh) * | 2018-01-31 | 2019-08-06 | 国广融合(北京)传媒科技发展有限公司 | 一种基于融合传输系统的文件传输方法 |
-
2019
- 2019-11-07 CN CN201911083107.6A patent/CN112788078B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102889891A (zh) * | 2011-07-21 | 2013-01-23 | 日立汽车系统株式会社 | 地图数据分发服务器、地图数据分发系统及地图数据分发方法 |
CN103095758A (zh) * | 2011-11-01 | 2013-05-08 | 北大方正集团有限公司 | 一种分布式文件系统及该系统中处理文件数据的方法 |
CN102685143A (zh) * | 2012-05-23 | 2012-09-19 | 北京新媒传信科技有限公司 | 音频数据的传输方法以及客户端、服务器 |
CN105574130A (zh) * | 2015-12-14 | 2016-05-11 | 浪潮通用软件有限公司 | 一种数据传输方法及业务系统 |
CN110099087A (zh) * | 2018-01-31 | 2019-08-06 | 国广融合(北京)传媒科技发展有限公司 | 一种基于融合传输系统的文件传输方法 |
CN109167750A (zh) * | 2018-07-06 | 2019-01-08 | 北京金山安全软件有限公司 | 一种数据包传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112788078A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180012051A1 (en) | Computer configured to display multimedia content | |
CN110445860B (zh) | 一种报文发送方法、装置、终端设备及存储介质 | |
CN107911222B (zh) | 数字签名生成、验证方法及其设备和存储介质 | |
CN110704521A (zh) | 接口数据接入方法及系统 | |
CN109582655B (zh) | 系统日志的定位方法及装置、计算机可读存储介质 | |
CN114500690B (zh) | 接口数据处理方法、装置、电子设备及存储介质 | |
CN115242896B (zh) | 动态报文解析方法、装置、电子设备及计算机可读存储介质 | |
CN112702228B (zh) | 服务限流响应方法、装置、电子设备及可读存储介质 | |
CN104580310A (zh) | 日志处理方法和服务器 | |
CN111752770A (zh) | 服务请求的处理方法、系统、计算机设备和存储介质 | |
CN104580376A (zh) | 在局域网中建立终端之间连接的方法、装置和系统 | |
CN115208951A (zh) | 请求处理方法、装置、电子设备及计算机可读存储介质 | |
CN105554136B (zh) | 备份数据还原方法、装置及系统 | |
CN112788078B (zh) | 数据传输方法、接收装置、发送装置和计算机设备 | |
CN111988418A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN115563600A (zh) | 数据审核方法和装置、电子设备及存储介质 | |
CN112052267B (zh) | 一种数据查询方法、设备、服务器及存储介质 | |
CN112787978B (zh) | 数据采集方法、装置、计算机设备和计算机可读存储介质 | |
CN112788077B (zh) | 数据采集方法、装置、计算机设备和计算机可读存储介质 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN108600255A (zh) | Mock服务管理方法、装置、计算机设备以及存储介质 | |
CN110505289B (zh) | 文件下载方法及装置、计算机可读介质、无线通信设备 | |
CN103609193B (zh) | 识别终端类型的方法及无线接入网设备 | |
CN114039801A (zh) | 一种短链接生成方法、解析方法和系统、设备、存储介质 | |
CN111414190B (zh) | 一种请求处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |