CN113810471B - 一种数据传输方法、发送设备及接收设备 - Google Patents
一种数据传输方法、发送设备及接收设备 Download PDFInfo
- Publication number
- CN113810471B CN113810471B CN202110949139.0A CN202110949139A CN113810471B CN 113810471 B CN113810471 B CN 113810471B CN 202110949139 A CN202110949139 A CN 202110949139A CN 113810471 B CN113810471 B CN 113810471B
- Authority
- CN
- China
- Prior art keywords
- array
- data
- grouping
- target
- message
- 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
- 238000000034 method Methods 0.000 title claims abstract description 48
- 230000005540 biological transmission Effects 0.000 title claims abstract description 43
- 238000000605 extraction Methods 0.000 claims description 2
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000003491 array Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 8
- 239000000284 extract Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种数据传输方法、发送设备及接收设备,用于提高数据传输效率。本申请方法包括:获取待发送文件;A1:从待发送文件中获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M‑1的序号并存入第一数组;A2:将第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;A3:按预设规则对第二数组进行分组,得到分组数据;A4:对每一分组数据进行处理,得到每一分组数据对应的第三数组;A5:将每一分组数据对应的第三数组填充至消息数组;重复执行步骤A1至A5,当消息数组被完全填充或者消息数组未完全填充但待发送文件中的数据已全部处理并填充到消息数组时,向接收设备发送消息数组。
Description
技术领域
本申请实施例涉及数据处理技术领域,尤其涉及一种数据传输方法、发送设备及接收设备。
背景技术
现有技术中,当设备进行通信时,发送方一次最多能向接收方发送双方所使用的传输协议规定的数据量。
然而,当发送方发送的文件比较大时,需要将该文件分多次发送,而每次发送请求和接收应答都需要花费时间,因此将文件分多次发送会花费多次发送请求和多次接收应答的时间,使得发送文件花费的总时间很漫长。
发明内容
本申请实施例提供了一种数据传输方法、发送设备及接收设备,可以增加单次发送的有效数据量,从而减少发送次数,以便于减少发送文件所花费的总时间。
本申请实施例第一方面提供了一种数据传输方法,应用于发送设备,所述方法包括:
获取待发送文件,所述待发送文件中的数据为进制数;
A1:从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
A2:将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
A3:按预设规则对所述第二数组进行分组,得到分组数据;
A4:对每一分组数据进行处理,得到每一分组数据对应的第三数组;
A5:将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
重复执行步骤A1至A5,当所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组时,向接收设备发送所述消息数组。
可选的,所述按预设规则对所述第二数组进行分组,具体包括:
对所述第二数组进行排序;
B:获取所述第二数组中的未分组目标元素中的最小目标元素,将与所述最小目标元素的差值不大于预设值的目标元素划分为同一分组;
重复执行步骤B,直到所述第二数组中的全部目标元素均完成分组。
可选的,所述对每一分组数据进行处理,得到每一分组数据对应的第三数组,具体包括:
提取所述第二数组中的每一分组的分组最小目标元素,确定每一分组中的分组目标元素数量,以及每一分组中分组目标元素的特征值,所述特征值为所述每一分组中任一分组目标元素与分组最小目标元素的差值;
将分组最小目标元素、分组目标元素数量、分组目标元素的特征值组合生成分组数据对应的第三数组。
可选的,在所述向接收设备发送所述消息数组之后,所述方法还包括:
判断是否存在未填充至消息数组的第三数组;
若存在,则清空所述消息数组,将未填充至消息数组的第三数组填充至清空后的消息数组;
若不存在,则清空所述消息数组。
本申请实施例第二方面提供了一种数据传输方法,应用于接收设备,所述方法包括:
接收由发送设备发送的消息数组;
依次解析所述消息数组中的第三数组,得到对应的分组数据;
遍历分组数据中的目标元素,确定目标元素的实际序号;
按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序;
提取所述全部目标元素的有效数据,组成目标文件。
可选的,所述遍历分组数据中的目标元素,确定目标元素的实际序号,具体包括:
确定目标元素在消息数组中的位置排序数值;
对所述位置排序数值与M的比值进行向下取整,得到序号因子;
确定M与序号因子的乘积为序号系数;
提取目标元素的序号标记;
确定目标元素的实际序号为所述序号系数与所述序号标记之和。
本申请实施例第三方面提供了一种发送设备,包括:
第一获取单元,用于获取待发送文件,所述待发送文件中的数据为进制数;
第二获取单元,用于从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
生成单元,用于将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
分组单元,用于按预设规则对所述第二数组进行分组,得到分组数据;
执行单元,用于对每一分组数据进行处理,得到每一分组数据对应的第三数组;
填充单元,用于将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
第一判断单元,用于判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况;
发送单元,用于向接收设备发送所述消息数组。
可选的,所述分组单元,具体用于:
对所述第二数组进行排序;
B:获取所述第二数组中的未分组目标元素中的最小目标元素,将与所述最小目标元素的差值不大于预设值的目标元素划分为同一分组;
重复执行步骤B,直到所述第二数组中的全部目标元素均完成分组。
可选的,所述执行单元,具体用于:
提取所述第二数组中的每一分组的分组最小目标元素,确定每一分组中的分组目标元素数量,以及每一分组中分组目标元素的特征值,所述特征值为所述每一分组中任一分组目标元素与分组最小目标元素的差值;
将分组最小目标元素、分组目标元素数量、分组目标元素的特征值组合生成分组数据对应的第三数组。
可选的,所述发送设备还包括:
判断单元,用于:
判断是否存在未填充至消息数组的第三数组;
若存在,则清空所述消息数组,将未填充至消息数组的第三数组填充至清空后的消息数组;
若不存在,则清空所述消息数组。
本申请实施例第四方面提供了一种接收设备,包括:
接收单元,用于接收由发送设备发送的消息数组;
解析单元,用于依次解析所述消息数组中的第三数组,得到对应的分组数据;
确定单元,用于遍历分组数据中的目标元素,确定目标元素的实际序号;
排序单元,用于按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序;
提取单元,用于提取所述全部目标元素的有效数据,组成目标文件。
可选的,所述确定单元,具体用于:
确定目标元素在消息数组中的位置排序数值;
对所述位置排序数值与M的比值进行向下取整,得到序号因子;
确定M与序号因子的乘积为序号系数;
提取目标元素的序号标记;
确定目标元素的实际序号为所述序号系数与所述序号标记之和。
本申请实施例第五方面提供了一种发送设备,包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述处理器执行如第一方面及第一方面任意一种可能的实施方式中的方法。
本申请实施例第六方面提供了一种接收设备,包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述处理器执行如第二方面及第二方面任意一种可能的实施方式中的方法。
本申请实施例第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有程序,所述程序在计算机上执行时使得所述计算机执行第一方面及第一方面任意一种可能的实施方式、第二方面及第二方面任意一种可能的实施方式中的方法。
本申请实施例第八方面提供了一种数据传输系统,包括如第三方面所述的发送设备、如第四方面所述的接收设备。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请中,发送设备在获取待发送文件之后,从待发送文件中不重复的获取M个字节作为M个有效元素,根据这些字节的先后顺序在每个字节后添加0至M-1的序号并存入第一数组,然后将每个有效元素和其对应的序号组合成目标元素并存入第二数组,再根据预设规则对该第二数组进行分组,从而得到分组数据,接着对每一分组数据进行处理,得到每一分组数据对应的第三数组,再将这些第三数组填充到消息数组,当消息数组被填满,或者消息数组还没被填满但待发送文件中的所有数据已经被处理完并且填充到消息数组中时,发送设备将消息数组发送给接收设备。
因为发送设备对待发送文件中的有效元素进行了分组,并对每一分组数据进行处理,生成了多个第三数组,从而将有效元素转换为多个第三数组,在一定情况下,第三数组可以包含更多的有效元素的信息。
进而可以使消息数组包含更多有效元素的信息,可以提高发送设备单次向接收设备发送的有效数据量,所以可以提高数据传输效率。
附图说明
图1为本申请实施例中数据传输系统一个实施例的流程示意图;
图2为本申请实施例中数据传输方法一个实施例的流程示意图;
图3为本申请实施例中数据传输方法另一个实施例的流程示意图;
图4为本申请实施例中数据传输方法另一个实施例的流程示意图;
图5为本申请实施例中数据传输方法另一个实施例的流程示意图;
图6为本申请实施例中发送设备一个实施例的结构示意图;
图7为本申请实施例中发送设备另一个实施例的结构示意图;
图8为本申请实施例中发送设备另一个实施例的结构示意图;
图9为本申请实施例中接收设备一个实施例的结构示意图;
图10为本申请实施例中接收设备另一个实施例的结构示意图。
具体实施方式
现有技术中,当设备进行通信时,发送方一次最多能向接收方发送双方所使用的传输协议规定的数据量。然而,当发送方发送的文件比较大时,需要将该文件分多次发送,而每次发送请求和接收应答都需要花费时间,因此将文件分多次发送会花费多次发送请求和多次接收应答的时间,使得发送文件花费的总时间很漫长。
基于此,本申请提供了一种数据传输方法、发送设备及接收设备,可以增加单次发送的有效数据量,从而减少发送次数,以便于减少发送文件所花费的总时间。
本申请实施例提供了一种数据传输方法、发送设备及接收设备,用于增加单次发送的有效数据量,从而减少发送次数,以便于减少发送文件所花费的总时间。
下面结合附图,对本发明的实施例进行描述。
请参阅图1,本申请实施例中数据传输系统一个实施例包括:
发送设备101、接收设备102。
发送设备101与接收设备102建立有通信连接。
本申请中,发送设备101可以向接收设备102发送通信消息,接收设备102可以接收来自发送设备101发送的通信消息。接收设备102也可以向发送设备101发送通信消息,发送设备101也可以接收来自接收设备102发送的通信消息。
请参阅图2,本申请实施例中数据传输方法一个实施例包括:
201、发送设备获取待发送文件。
本申请实施例中,发送设备和接收设备进行通信,发送设备想要向接收设备发送文件时,需要先获取文件,因此发送设备首先获取要发送给接收设备的待发送文件。需要说明的是,待发送文件中的数据为进制数,这些进制数包括二进制,八进制,十进制和十六进制,本实施例以十六进制为例进行说明。
202、发送设备从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组。
发送设备可以从待发送文件中不重复地顺序获取M个字节作为M个有效元素,然后根据获取字节的顺序,依次在每个字节后添加0至M-1的序号并存储到第一数组中。本实施例中,“不重复”是指前后两次获取的字节对应的文档位置没有重叠。具体来说,比如第一次取数为文档中第1至第M个位置字节,第二次取数为第M+1个至第2M个位置字节。因此,M=待发送文件最大数值-待发送文件最小数值+1。本实施例中,0至M-1的序号包括二进制,八进制,十进制和十六进制,本实施例以十六进制为例进行说明。例如,当M取256时,那么这M个有效元素对应的序号分别为0x00至0xFF。
203、发送设备将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组。
发送设备可以从第一数组中顺序地取出数据,然后将每个有效元素和其后相邻的序号进行组合,从而生成多个目标元素,然后发送设备将组合生成的目标元素存入第二数组中。例如,当第一数组中某一个有效元素为0x01,该有效元素后面的序号为0x00时,发送设备将这两个元素组合生成目标元素0x0100,然后将该目标元素存入到第二数组中。
204、发送设备按预设规则对所述第二数组进行分组,得到分组数据。
发送设备可以按照预设规则对第二数组中的目标元素进行分组,得到一个或者多个分组数据。
205、发送设备对每一分组数据进行处理,得到每一分组数据对应的第三数组。
针对任一分组数据,发送设备可以对该分组数据进行处理,从而得到该分组数据对应的第三数组。对于任意一个分组数据,该分组数据对应的第三数组中包含有该分组数据所有目标元素的信息。
206、发送设备将每一分组数据对应的第三数组填充至消息数组。
在得到每一分组数据对应的第三数组之后,发送设备可以将第三数组填充到消息数组,由于第三数组包含有对应的分组数据所有目标元素的信息,因此当发送设备将所有分组数据对应的第三数组填充到消息数组中时,消息数组中包括第二数组中所有目标元素的信息。需要说明的是,消息数组的长度由发送设备的传输协议确定,例如,当发送设备使用控制器局域网络(Controller Area Network,CAN)传输协议时,消息数组的长度则为4095字节。
207、发送设备判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况,若是,则执行步骤208,若否,则再次执行步骤202至207。
每执行完一次步骤206,发送设备则可以进行判断,判断出否出现了消息数组被完全填充,或者消息数组还没被完全填充但是待发送文件中的数据已经被全部处理完毕且填充到消息数组中的情况,完全填充即填满,即消息数组的字节全部被填充。如果发送设备确定出现了该情况,那么可以执行步骤208;如果发送设备确定没有出现该情况,那么需要再次执行步骤202至207。
208、发送设备向接收设备发送所述消息数组。
如果发送设备确定消息数组被完全填充,或者消息数组没有被完全填充但待发送文件中的数据已经被全部处理并且填充到消息数组,那么发送设备可以向接收设备发送消息数组。
本实施例中,发送设备在获取待发送文件之后,从待发送文件中不重复的获取M个字节作为M个有效元素,根据这些字节的先后顺序在每个字节后添加0至M-1的序号并存入第一数组,然后将每个有效元素和其对应的序号组合成目标元素并存入第二数组,再根据预设规则对该第二数组进行分组,从而得到分组数据,接着对每一分组数据进行处理,得到每一分组数据对应的第三数组,再将这些第三数组填充到消息数组,当消息数组被填满,或者消息数组还没被填满但待发送文件中的所有数据已经被处理完并且填充到消息数组中时,发送设备将消息数组发送给接收设备。因为发送设备对待发送文件中的有效元素进行了分组,并对每一分组数据进行处理,生成了多个第三数组,从而将有效元素转换为多个第三数组,在一定情况下,第三数组可以包含更多的有效元素的信息。进而可以使消息数组包含更多有效元素的信息,可以提高发送设备单次向接收设备发送的有效数据量,所以可以提高数据传输效率。
请参阅图3,本申请实施例中数据传输方法另一个实施例包括:
301、发送设备获取待发送文件。
302、发送设备从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组。
303、发送设备将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组。
本实施例中,步骤301至303与前述实施例中的步骤201至203类似,此处不再赘述。
304、发送设备对所述第二数组进行排序。
在将生成的目标元素存入第二数组之后,发送设备可以对第二数组中的目标元素进行排序,既可以根据目标元素从小到大的顺序进行排序,也可以根据目标元素从大到小的顺序进行排序,具体此处不作限定。
305、发送设备获取所述第二数组中的未分组目标元素中的最小目标元素,将与所述最小目标元素的差值不大于预设值的目标元素划分为同一分组。
发送设备在对第二数组进行排序之后,可以获取第二数组中未分组目标元素中的最小目标元素,然后计算其他目标元素与该最小目标元素的差值,将与该最小目标元素的差值不大于预设值的目标元素划分为同一分组(分组中包括该最小目标元素)。发送设备重复执行该步骤,直至将第二数组中的所有目标元素完成分组。本申请实施例中,预设值可以根据实际情况而定,具体此处不做限定,为方便描述,本申请实施例以预设值为16进行举例说明。
306、发送设备提取所述第二数组中的每一分组的分组最小目标元素,确定每一分组中的分组目标元素数量,以及每一分组中分组目标元素的特征值。
在完成对第二数组中的目标元素完成分组之后,对于任意一个分组,发送设备可以提取该分组中最小的目标元素作为该分组的分组最小目标元素,确定该分组的分组目标元素数量,分组目标元素数量即为该分组中目标元素的总数量,并计算出该分组中每个目标元素与最小目标元素的差值作为每个目标元素对应的特征值。以十六进制为例,假如存在这样一个分组[010C,010D,010F,0111,0115,0118],那么该分组的分组最小目标元素为0x010C,分组目标元素数量为6,该分组中各分组目标元素的特征值分别为0x010C-0x010C=0x00,0x010D-0x010C=0x01,0x010F-0x010C=0x03,0x0111-0x010C=0x05,0x0115-0x010C=0x09,0x0118-0x010C=0x0C。
本实施例中,可以通过4bit的特征值表示8bit的有效数据,因此可以提高数据传输效率。
307、发送设备将分组最小目标元素、分组目标元素数量、分组目标元素的特征值组合生成分组数据对应的第三数组。
对于任意一个分组数据,发送设备可以将分组最小目标元素、分组目标元素数量以及分组目标元素的特征值进行组合,从而生成该分组对应的第三数组。以十六进制为例,假如存在这样一个分组[010C,010D,010F,0111,0115,0118],那么该分组的分组最小目标元素为0x010C,分组目标元素数量为6,该分组中各分组目标元素的特征值分别为0x010C-0x010C=0x00,0x010D-0x010C=0x01,0x010F-0x010C=0x03,0x0111-0x010C=0x05,0x0115-0x010C=0x09,0x0118-0x010C=0x0C。发送设备生成该分组数据对应的第三数组为[010C501359C],其中,0x010C表示分组最小目标元素,0x5用于表示分组目标元素数量,0x0,0x1,0x3,0x5,0x9,0xC分别表示各分组目标元素对应的特征值。
本实施例中,发送设备用16bit表示分组最小目标元素,4bit表示分组目标元素数量,4bit表示每个分组目标元素的特征值,当每个分组数据中分组目标元素数量大于5时,可以使第三数组包含比自身空间更多的有效数据的信息,提高了数据传输效率。
308、发送设备将每一分组数据对应的第三数组填充至消息数组。
发送设备在生成每一分组数据对应的第三数组之后,可以将这些第三数组填充至消息数组,需要说明的是,如果将消息数组完全填充之后,还有第三数组未填充至消息数组,那么则保留这些为填充的第三数组,以对这些第三数组进行下一步处理。
309、发送设备判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况,若是,则执行步骤310,若否,则再次执行步骤302至309。
每执行完一次步骤308,发送设备则可以进行判断,判断出否出现了消息数组被完全填充,或者消息数组还没被完全填充但是待发送文件中的数据已经被全部处理完毕且填充到消息数组中的情况,完全填充即填满,即消息数组的字节全部被填充。如果发送设备确定出现了该情况,那么可以执行步骤310;如果发送设备确定没有出现该情况,那么需要再次执行步骤302至309。
310、发送设备向接收设备发送所述消息数组。
本实施例中,步骤310与前述实施例中的步骤208类似,此处不再赘述。
311、发送设备判断是否存在未填充至消息数组的第三数组,若是,则执行步骤312,若否,则执行步骤313。
发送设备将消息数组发送给接收设备之后,可以进行判断,如果确定存在未填充至消息数组的第三数组,则可以执行步骤312,否则执行步骤313。
312、发送设备清空所述消息数组,将未填充至消息数组的第三数组填充至清空后的消息数组。
当发送设备确定存在未填充至消息数组的第三数组时,则可以清空消息数组,然后将未填充至消息数组的第三数组填充到清空后的消息数组。
313、发送设备清空所述消息数组。
如果发送设备确定已经将所以的第三数组填充至消息数组,则可以清空该消息数组。
请参阅图4,本申请实施例中数据传输方法另一个实施例包括:
401、接收设备接收由发送设备发送的消息数组。
本申请实施例中,发送设备和接收设备进行数据通信,在发送设备向接收设备发送消息数组之后,接收设备则可以接收该消息数组,消息数组中包括多个第三数组。需要说明的是,消息数组的长度由发送设备的传输协议确定,为方便描述,本实施例以发送设备使用CAN传输协议为例进行描述,根据CAN传输协议的内容可知,消息数组的长度则为4095字节。需要说明的是,消息数组中的数据为进制数,这些进制数包括二进制,八进制,十进制和十六进制,本实施例以十六进制为例进行说明。
402、接收设备依次解析所述消息数组中的第三数组,得到对应的分组数据。
接收设备在接收到消息数组之后,可以对消息数组进行解析,将消息数组中的第三数组还原成对应的分组数据。具体为,发送设备先解析前两个字节作为第一个第三数组的分组最小目标元素,然后解析后4bit计算第一个第三数组的分组目标元素数量,然后从消息数组中获取分组目标元素数量个4bit作为第一个第三数组中分组目标元素的特征值,再将每个特征值和分组最小目标元素相加得到第三数组对应的每个分组目标元素,从而得到第一个第三数组对应的分组数据,并依次类推解析得到后续的多个第三数组对应的分组数据。
例如:假如消息数组中的前15个字节为[00,0A,20,12,01,00,A0,12,34,56,78,9A,01,0C,F0],那么接收设备先获取前两个字节作为第一个第三数组的分组最小目标元素即0x000A,然后获取后4bit即0x2,那么对应的分组目标元素数量为0x2+1=3,接着从消息数组中获取3个4bit作为分组目标元素的特征值,即0x0,0x1,0x2,再将这些特征值与分组最小目标元素相加得到分组目标元素0x000A,0x000B,0x000C,从而得到第一个第三数组对应的分组数据为[000A,0000B,000C]。接下来继续解析后2个字节作为第二个第三数组的最小目标元素即0x0100,然后获取后4bit即0xA,那么对应的分组目标元素数量为0xA+1=11,接着从消息数组中获取11个4bit作为分组目标元素的特征值,即0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7,0x8,0x9,0xA,再将这些特征值与分组最小目标元素相加得到分组目标元素0x0100,0x0101,0x0102,0x0103,0x0104,0x0105,0x0106,0x0107,0x0108,0x0109,0x010A,从而得到第二个第三数组对应的分组数据为[0100,0101,0102,0103,0104,0105,0106,0107,0108,0109,010A]。接下来继续解析后2个字节作为第三个第三数组的最小目标元素即0x010C,然后获取后4bit即0xF,那么对应的分组目标元素数量为0xF+1=16,则接着从消息数组中获取16个4bit作为分组目标元素的特征值。
403、接收设备遍历分组数据中的目标元素,确定目标元素的实际序号。
在得到消息数组中的分组数据之后,接收设备可以遍历分组数据中的目标元素,从而确定每个目标元素的实际序号。
404、接收设备按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序。
接收设备在确定每个目标元素的实际序号之后,可以根据实际序号从小到大的顺序,对全部目标元素进行排序,从而得到排序后的目标元素。
405、接收设备提取所述全部目标元素的有效数据,组成目标文件。
接收设备在对目标元素排序之后,使目标元素中的有效数据恢复了正确的顺序,此时接收设备可以提取每个目标元素中包含的有效数据(即每个目标元素的前8bit),按照目标元素的顺序将这些有效数据组成目标文件。
本实施例中,接收设备接收的消息数组中,每个第三数组可以包括比该第三数组所占存储空间更多的有效数据的信息,因此该消息数组可以包括比自身所占存储空间更多的有效数据的信息,所以提高了接收设备接收有效数据的效率,从而提高了数据传输效率。
请参阅图5,本申请实施例中数据传输方法另一个实施例包括:
501、接收设备接收由发送设备发送的消息数组。
502、接收设备依次解析所述消息数组中的第三数组,得到对应的分组数据。
本实施例中,步骤501至502与前述实施例中的步骤401至402类似,此处不再赘述。
503、接收设备确定目标元素在消息数组中的位置排序数值。
接收设备可以确定目标元素在消息数组中的位置排序数值,例如第二个第三数组对应的分组数据中排序第3的目标元素,当第一个第三数组中包括16个目标元素时,该目标元素的排序数值为16+3=19;第四个第三数组对应的分组数据中排序第1的目标元素,当第一个第三数组中包括15个目标元素,第二个第三数组中包括10个目标元素,第三个第三数组中包括8个目标元素,第四个第三数组中包括9个目标元素,该目标元素的位置排序数值为15+10+8+9+1=43。
504、接收设备对所述位置排序数值与M的比值进行向下取整,得到序号因子。
接收设备在得到每个位置目标元素之后,对于任意一个位置排序数值,接收设备可以对该排序数值与M的比值进行向下取整,得到对应的序号因子。例如,位置排序数值为123,M为256,那么123与256的比值向下取整为0,则对应的序号因子为0;位置排序数值为653,M为256,那么653与256的比值向下取整为2,则对应的序号因子为2。
505、接收设备确定M与序号因子的乘积为序号系数。
对于任意一个目标元素,对于接收设备可以确定M与该目标元素对应的序号因子的乘积为该目标元素的序号系数。
506、接收设备提取目标元素的序号标记。
接收设备可以提取每一个目标元素的序号标记,序号标记即为该目标元素的后8bit。例如,目标元素0x000A,对应的序号标记为0x0A;目标元素0x01DF,对应的序号标记为0xDF。
507、接收设备确定目标元素的实际序号为所述序号系数与所述序号标记之和。
对于任意一个目标元素,接收设备可以确定该目标元素的实际序号为该目标元素的序号系数与该目标元素的序号标记之和。例如,当一个目标元素的序号系数为512,序号标记为123时,该目标元素的实际序号则为512+123=635;当一个目标元素的序号系数为0,序号标记为24时,该目标元素的实际序号则为0+24=24。
508、接收设备按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序。
509、接收设备提取所述全部目标元素的有效数据,组成目标文件。
本实施例中,步骤508至509与前述实施例中的步骤404至405类似,此处不再赘述。
本实施例中,发送设备可以根据目标元素的序号因子、序号系数和序号标记确定实际序号,再根据实际序号从小打到的顺序提取目标元素对应的有效数据,组成目标文件,因此可以减少将有效数据错误排序的情况。
请参阅图6,本申请实施例中发送设备一个实施例包括:
第一获取单元601,用于获取待发送文件,所述待发送文件中的数据为进制数;
第二获取单元602,用于从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
生成单元603,用于将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
分组单元604,用于按预设规则对所述第二数组进行分组,得到分组数据;
执行单元605,用于对每一分组数据进行处理,得到每一分组数据对应的第三数组;
填充单元606,用于将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
第一判断单元607,用于判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况;
发送单元608,用于向接收设备发送所述消息数组。
请参阅图7,本申请实施例中发送设备另一个实施例包括:
第一获取单元701,用于获取待发送文件,所述待发送文件中的数据为进制数;
第二获取单元702,用于从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
生成单元703,用于将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
分组单元704,用于按预设规则对所述第二数组进行分组,得到分组数据;
执行单元705,用于对每一分组数据进行处理,得到每一分组数据对应的第三数组;
填充单元706,用于将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
第一判断单元707,用于判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况;
发送单元708,用于向接收设备发送所述消息数组。
本实施例中,分组单元704具体用于:
对所述第二数组进行排序;
B:获取所述第二数组中的未分组目标元素中的最小目标元素,将与所述最小目标元素的差值不大于预设值的目标元素划分为同一分组;
重复执行步骤B,直到所述第二数组中的全部目标元素均完成分组。
本实施例中,执行单元705具体用于:
提取所述第二数组中的每一分组的分组最小目标元素,确定每一分组中的分组目标元素数量,以及每一分组中分组目标元素的特征值,所述特征值为所述每一分组中任一分组目标元素与分组最小目标元素的差值;
将分组最小目标元素、分组目标元素数量、分组目标元素的特征值组合生成分组数据对应的第三数组。
本实施例中,发送设备还可以进一步包括第二判断单元709,第二判断单元709用于:
判断是否存在未填充至消息数组的第三数组;
若存在,则清空所述消息数组,将未填充至消息数组的第三数组填充至清空后的消息数组;
若不存在,则清空所述消息数组。
请参阅图8,本申请实施例中发送设备另一个实施例包括:
处理器801、存储器802、输入输出单元803以及总线804;
处理器801与存储器802、输入输出单元803以及总线804相连;
存储器802保存有程序,处理器801调用程序以执行如图2至图3所示实施例中的步骤。
请参阅图9,本申请实施例中接收设备一个实施例包括:
接收单元901,用于接收由发送设备发送的消息数组;
解析单元902,用于依次解析所述消息数组中的第三数组,得到对应的分组数据;
确定单元903,用于遍历分组数据中的目标元素,确定目标元素的实际序号;
排序单元904,用于按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序;
提取单元905,用于提取所述全部目标元素的有效数据,组成目标文件。
可选的,确定单元903可以具体用于:
确定目标元素在消息数组中的位置排序数值;
对所述位置排序数值与M的比值进行向下取整,得到序号因子;
确定M与序号因子的乘积为序号系数;
提取目标元素的序号标记;
确定目标元素的实际序号为所述序号系数与所述序号标记之和。
请参阅图10,本申请实施例中接收设备另一个实施例包括:
处理器1001、存储器1002、输入输出单元1003以及总线1004;
处理器1001与存储器1002、输入输出单元1003以及总线1004相连;
存储器1002保存有程序,处理器1001调用程序以执行如图4至图5所示实施例中的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,read-onlymemory)、随机存取存储器(RAM,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
1.一种数据传输方法,应用于发送设备,其特征在于,包括:
获取待发送文件,所述待发送文件中的数据为进制数;
A1:从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
A2:将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
A3:按预设规则对所述第二数组进行分组,得到分组数据;
A4:对每一分组数据进行处理,得到每一分组数据对应的第三数组;
A5:将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
重复执行步骤A1至A5,当所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组时,向接收设备发送所述消息数组。
2.根据权利要求1所述的方法,其特征在于,所述按预设规则对所述第二数组进行分组,具体包括:
对所述第二数组进行排序;
B:获取所述第二数组中的未分组目标元素中的最小目标元素,将与所述最小目标元素的差值不大于预设值的目标元素划分为同一分组;
重复执行步骤B,直到所述第二数组中的全部目标元素均完成分组。
3.根据权利要求1所述的方法,所述对每一分组数据进行处理,得到每一分组数据对应的第三数组,具体包括:
提取所述第二数组中的每一分组的分组最小目标元素,确定每一分组中的分组目标元素数量,以及每一分组中分组目标元素的特征值,所述特征值为所述每一分组中任一分组目标元素与分组最小目标元素的差值;
将分组最小目标元素、分组目标元素数量、分组目标元素的特征值组合生成分组数据对应的第三数组。
4.根据权利要求1所述的方法,其特征在于,在所述向接收设备发送所述消息数组之后,所述方法还包括:
判断是否存在未填充至消息数组的第三数组;
若存在,则清空所述消息数组,将未填充至消息数组的第三数组填充至清空后的消息数组;
若不存在,则清空所述消息数组。
5.一种数据传输方法,应用于接收设备,其特征在于,包括:
接收由发送设备发送的消息数组,所述消息数组由所述发送设备调用如权利要求1所述的方法生成;
依次解析所述消息数组中的第三数组,得到对应的分组数据;
遍历分组数据中的目标元素,确定目标元素的实际序号;
按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序;
提取所述全部目标元素的有效数据,组成目标文件。
6.根据权利要求5所述的方法,其特征在于,所述遍历分组数据中的目标元素,确定目标元素的实际序号,具体包括:
确定目标元素在消息数组中的位置排序数值;
对所述位置排序数值与M的比值进行向下取整,得到序号因子;
确定M与序号因子的乘积为序号系数;
提取目标元素的序号标记;
确定目标元素的实际序号为所述序号系数与所述序号标记之和。
7.一种发送设备,其特征在于,包括:
第一获取单元,用于获取待发送文件,所述待发送文件中的数据为进制数;
第二获取单元,用于从所述待发送文件中不重复地按文档位置顺序获取M个字节作为M个有效元素,根据先后顺序在每个字节后添加0至M-1的序号并存入第一数组,M为大于1的整数;
生成单元,用于将所述第一数组中每个有效元素与其后相邻的序号进行组合生成目标元素并存入第二数组;
分组单元,用于按预设规则对所述第二数组进行分组,得到分组数据;
执行单元,用于对每一分组数据进行处理,得到每一分组数据对应的第三数组;
填充单元,用于将每一分组数据对应的第三数组填充至消息数组,所述消息数组的字节长度由所述发送设备的传输协议确定;
第一判断单元,用于判断是否出现所述消息数组被完全填充或者所述消息数组未完全填充但所述待发送文件中的数据已全部处理并填充到所述消息数组的情况;
发送单元,用于向接收设备发送所述消息数组。
8.一种接收设备,其特征在于,包括:
接收单元,用于接收由发送设备发送的消息数组,所述消息数组由所述发送设备调用如权利要求1所述的方法生成;
解析单元,用于依次解析所述消息数组中的第三数组,得到对应的分组数据;
确定单元,用于遍历分组数据中的目标元素,确定目标元素的实际序号;
排序单元,用于按照目标元素的实际序号按照从小到大的顺序对全部目标元素进行排序;
提取单元,用于提取所述全部目标元素的有效数据,组成目标文件。
9.一种发送设备,其特征在于,包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行如权利要求1-4中任意一项所述的方法。
10.一种接收设备,其特征在于,包括:
处理器、存储器、输入输出单元以及总线;
所述处理器与所述存储器、所述输入输出单元以及所述总线相连;
所述存储器保存有程序,所述处理器调用所述程序以执行如权利要求5或6所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949139.0A CN113810471B (zh) | 2021-08-18 | 2021-08-18 | 一种数据传输方法、发送设备及接收设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949139.0A CN113810471B (zh) | 2021-08-18 | 2021-08-18 | 一种数据传输方法、发送设备及接收设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113810471A CN113810471A (zh) | 2021-12-17 |
CN113810471B true CN113810471B (zh) | 2024-05-14 |
Family
ID=78893722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110949139.0A Active CN113810471B (zh) | 2021-08-18 | 2021-08-18 | 一种数据传输方法、发送设备及接收设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113810471B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114070842B (zh) * | 2021-10-12 | 2024-08-09 | 深圳市元征科技股份有限公司 | 一种数据传输方法、发送设备、接收设备及可读存储介质 |
CN116774623B (zh) * | 2023-04-28 | 2024-09-03 | 坤联数字技术(深圳)有限公司 | 一种汽车控制器can信号控制方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4495566A (en) * | 1981-09-30 | 1985-01-22 | System Development Corporation | Method and means using digital data processing means for locating representations in a stored textual data base |
WO2006027590A1 (en) * | 2004-09-09 | 2006-03-16 | Surfcontrol Plc | System, method and apparatus for use in monitoring or controlling internet access |
CN101771599A (zh) * | 2008-12-26 | 2010-07-07 | 中国移动通信集团公司 | 一种rtp数据包接收处理方法及装置 |
CN111555855A (zh) * | 2020-05-22 | 2020-08-18 | 乐鑫信息科技(上海)股份有限公司 | 一种无线传输方法和装置 |
CN112311755A (zh) * | 2020-06-11 | 2021-02-02 | 北京威努特技术有限公司 | 一种工控协议逆向分析方法及装置 |
CN113079074A (zh) * | 2021-03-25 | 2021-07-06 | 成都纵横自动化技术股份有限公司 | 一种基于can总线的协议栈通信方法、装置和存储介质 |
CN113141520A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 视频流传输方法、装置、电子设备及存储介质 |
WO2021152212A1 (en) * | 2020-01-31 | 2021-08-05 | Widlund Sam | Method and device for encrypting data |
CN113259256A (zh) * | 2021-07-15 | 2021-08-13 | 全时云商务服务股份有限公司 | 一种重复数据包过滤方法、系统及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0104227D0 (en) * | 2001-02-21 | 2001-04-11 | Ibm | Information component based data storage and management |
-
2021
- 2021-08-18 CN CN202110949139.0A patent/CN113810471B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4495566A (en) * | 1981-09-30 | 1985-01-22 | System Development Corporation | Method and means using digital data processing means for locating representations in a stored textual data base |
WO2006027590A1 (en) * | 2004-09-09 | 2006-03-16 | Surfcontrol Plc | System, method and apparatus for use in monitoring or controlling internet access |
CN101771599A (zh) * | 2008-12-26 | 2010-07-07 | 中国移动通信集团公司 | 一种rtp数据包接收处理方法及装置 |
CN113141520A (zh) * | 2020-01-17 | 2021-07-20 | 北京达佳互联信息技术有限公司 | 视频流传输方法、装置、电子设备及存储介质 |
WO2021152212A1 (en) * | 2020-01-31 | 2021-08-05 | Widlund Sam | Method and device for encrypting data |
CN111555855A (zh) * | 2020-05-22 | 2020-08-18 | 乐鑫信息科技(上海)股份有限公司 | 一种无线传输方法和装置 |
CN112311755A (zh) * | 2020-06-11 | 2021-02-02 | 北京威努特技术有限公司 | 一种工控协议逆向分析方法及装置 |
CN113079074A (zh) * | 2021-03-25 | 2021-07-06 | 成都纵横自动化技术股份有限公司 | 一种基于can总线的协议栈通信方法、装置和存储介质 |
CN113259256A (zh) * | 2021-07-15 | 2021-08-13 | 全时云商务服务股份有限公司 | 一种重复数据包过滤方法、系统及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113810471A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113810471B (zh) | 一种数据传输方法、发送设备及接收设备 | |
CN108965484B (zh) | 一种物联网数据的传输方法、系统及终端 | |
CN106657149B (zh) | 通讯协议转换方法与装置 | |
CN101621353A (zh) | 一种随机线性网络编码的方法、装置和系统 | |
CN102035822B (zh) | 航电asm协议控制器及控制方法 | |
CN111064716B (zh) | 消息转换方法、装置、存储介质及服务器 | |
CN111222306A (zh) | 数据处理方法和装置、电子设备和存储介质 | |
US20080313291A1 (en) | Method and apparatus for encoding data | |
KR20190086711A (ko) | 네트워크 관리 정보의 송수신 방법, 송수신 장치, 송신기 및 수신기 | |
CN106533976B (zh) | 一种数据包处理方法及装置 | |
JP3808620B2 (ja) | 情報識別システム、この情報識別システム用の制御装置および応答装置 | |
CN108243015B (zh) | 一种话单信息提取方法、话单服务器及网管服务器 | |
CN113676290A (zh) | 一种基于基金系统的数据传输方法及相关设备 | |
CN103051480B (zh) | 一种dn的存储方法及dn存储装置 | |
CN117743230A (zh) | 一种基于串口通讯协议的数据处理方法、存储介质和电子设备 | |
CN112019393A (zh) | 一种确定时延的方法及装置 | |
JP7194591B2 (ja) | マルチメディアシステムにおけるデータパケットを送受信する方法及び装置 | |
WO2022111326A1 (zh) | 一种数据传输方法、装置、电子设备和存储介质 | |
CN108717438A (zh) | 一种链式数据状态采集系统及方法 | |
JPH10341221A (ja) | ファイル伝送システム | |
CN114070842B (zh) | 一种数据传输方法、发送设备、接收设备及可读存储介质 | |
CN114386439B (zh) | 一种射频识别中信息防碰撞方法、系统、设备及存储介质 | |
CN110138860A (zh) | 一种基于物联网的数据通讯方法及装置 | |
CN114386440A (zh) | 一种射频识别中信息防碰撞方法、系统、设备及存储介质 | |
CN106330998B (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 |