CN112583923A - 一种文件传输方法、设备和存储介质 - Google Patents
一种文件传输方法、设备和存储介质 Download PDFInfo
- Publication number
- CN112583923A CN112583923A CN202011489315.9A CN202011489315A CN112583923A CN 112583923 A CN112583923 A CN 112583923A CN 202011489315 A CN202011489315 A CN 202011489315A CN 112583923 A CN112583923 A CN 112583923A
- Authority
- CN
- China
- Prior art keywords
- file
- received
- block
- file block
- sending
- 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.)
- Granted
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 Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种文件传输方法、设备和存储介质。该文件传输方法包括:发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的。本发明实施例实现了快速传输大数据。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种文件传输方法、设备和存储介质。
背景技术
随着当今互联网技术的飞速发展,在人们越来越依赖互联网的环境下,文件传输的速度成为大多用户的需求以及企业和研究人员想要突破的技术难题。
其中与文件传输速度联系最为紧密的是文件传输的协议,现有的文件传输协议多种多样,例如在终端和设备之间,Modbus协议被广泛使用,Modbus协议是一种请求/回复协议,提供功能码指定服务,有相应的功能码提供文件传输服务,具体在传输文件时,先把文件按顺序分割成文件块,由终端向设备请求读取文件块,设备回复对应文件块数据,直到读完。
但是如果要传输大量数据的文件,现有的Modbus协议就显得吃力,Modbus协议支持每次传输的文件块数据长度仅仅为253字节,再加上每传输一个文件块数据都需要终端主动请求,然后设备回复终端,一来一回就消耗更多时间,对于现在用户所希望的大数据快速传输,显然是无法满足用户需求的。
发明内容
基于此,有必要针对上述问题,提出了一种文件传输方法、设备和存储介质。
第一方面,本发明实施例提供了一种文件传输方法,所述方法包括:
发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的。
第二方面,本发明实施例还提供了一种文件传输方法,所述方法包括:
接收终端在局域网内发送的发现广播包;
响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;
接收所述终端返回的异步传输配置信息;
基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;
当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
第三方面,本发明实施例还提供了一种文件传输设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的。
以及接收终端在局域网内发送的发现广播包;响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;接收所述终端返回的异步传输配置信息;基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
第四方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的;
以及接收终端在局域网内发送的发现广播包;响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;接收所述终端返回的异步传输配置信息;基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
本发明实施例通过终端对设备进行异步传输配置,当异步传输配置信息指示传输时,终端接收设备基于异步传输配置信息连续发送的多个数据报文,其中数据报文包括文件块和文件块信息,从而使终端基于文件块信息连续接收所述文件块,直至完整接收待接收文件,其中数据报文为所述设备基于异步文件传输协议转换得到的,所述文件块为对所述待接收文件进行切割得到的,使得终端和设备之间的文件传输不需要每次都进行请求和回复,设备可以连续发送文件块给终端,解决了终端和设备之间进行文件传输时每个文件块都需要请求和回复导致传输速度过慢的问题,获得了快速传输大数据的有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中文件传输方法的流程图;
图2为一个实施例中文件传输方法中步骤S150具体的流程图;
图3为一个实施例中文件传输方法中接口线程和接收线程的工作流程图;
图4为一个实施例中文件传输方法中步骤S250具体的流程图;
图5为一个实施例中文件传输方法中步骤S350之前具体的流程图;
图6为一个实施例中文件传输方法中步骤S410之后以及步骤S350之前具体的流程图;
图7为一个实施例中文件传输方法中步骤S510之后以及步骤S350之前具体的流程图;
图8为另一个实施例中文件传输方法的流程图;
图9为一个实施例中文件传输方法的流程图;
图10为一个实施例中文件传输方法中步骤S750具体的流程图;
图11为一个实施例中文件传输方法中步骤S850具体的流程图;
图12为一个实施例中文件传输终端的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,在一个实施例中,提供了一种文件传输方法。该方法应用于终端。该文件传输方法具体包括如下步骤:
S110、发送发现广播包至局域网内。
S120、接收在所述局域网中的设备根据所述发现广播包回复的地址信息。
S130、根据所述地址信息发送异步传输配置信息至所述设备。
本实施例中,该文件传输方法应用于终端和设备之间的文件传输,终端可以为计算机终端、上位机等等,即用户的执行端,设备可以为电视机、冰箱等数据收集端,设备和终端都位于同一个局域网内,其之间可以进行无线或者有线的通信,其通信协议可以为TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)协议,TCP/IP协议是指能够在多个不同网络间实现信息传输的协议簇,包含大量的协议和应用。
具体的,终端首先基于IP(InternetProtocol,网际协议)协议发送发现广播包至局域网内,在同一个局域网内的设备都会收到该发现广播包,收到该发现广播包的设备都会根据该发现广播包回复地址信息,具体包括自身的IP地址和MAC(Media Access ControlAddress,媒体存取控制位址)地址给终端,终端接收到多个在局域网中的设备回复的地址信息后,用户可以控制终端选择要接收文件的对象,选择一个设备进行配置,并根据该设备的地址信息发送异步传输配置信息至该设备,其中异步传输配置信息基于Modbus/UDP(Modbus协议的一种)协议生成,异步传输配置信息包括异步文件传输时间,当异步文件传输时间为零时,设备将停止发送文件给终端,终端通过不断发送异步传输配置信息给设备,从而控制设备的文件传输时间。
S140、当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置。
S150、基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的。
本实施例中,当异步传输配置信息指示传输时,即异步文件传输时间不为零时,终端开始接收设备连续发送的多个数据报文,其中数据报文包括文件块和文件块信息,具体的,终端基于文件块信息连续接收所述文件块,直至完整接收待接收文件,其中数据报文为设备基于异步文件传输协议转换得到的,文件块为对待接收文件进行切割得到的。
具体的,设备在获得待接收文件后,需要对待接收文件进行切割,生成多个文件块,此时还需要根据自行设定的异步文件传输协议将这些文件块转换为数据报文,数据报文包括文件块和与这些文件块一一对应的文件块信息,文件块信息包括文件标志、文件标识、文件块偏移地址和文件块长度,所述文件标志用于标识所述文件块是否为最后一个文件块,所述文件标识用于标识所述文件块从属的待接收文件,所述文件块偏移地址和文件块长度用于标识所述文件块在所述待接收文件中的文件块位置。示例性的,文件标志用0和1的字段表示,1表示该待接收文件后面还存在文件块,0表示该文件块为该待接收文件中的最后一个文件块,文件标识可以用当前待接收文件的发送时间表示,例如用“年月时分秒毫秒”的字段表示,文件块偏移地址可以用字节表示,例如第一个文件块的文件块偏移地址为1,第一个文件块的文件块长度为1000,那么第二个文件块的文件块偏移地址为1001,依此类推,文件块长度即表示文件块的数据字段的字节长度,文件块即文件块的数据内容,以二进制形式表示。
其中,根据文件块信息可以确定每个文件块在整个待接收文件中的位置和其他信息,因此终端在接收待接收文件时,就不需要再每次接收文件块时请求设备并等待设备回复来确定文件块的信息,而可以直接基于数据报文中的文件块信息连续接收文件块,根据文件块信息确认这些文件块在待接收文件中的位置,从而写入接收文件,直至接收整个待接收文件后,继续接收下一个待接收文件,完成快速的大数据传输。
本发明实施例通过终端对设备进行异步传输配置,当异步传输配置信息指示传输时,终端接收设备基于异步传输配置信息连续发送的多个数据报文,其中数据报文包括文件块和文件块信息,从而使终端基于文件块信息连续接收所述文件块,直至完整接收待接收文件,其中数据报文为所述设备基于异步文件传输协议转换得到的,所述文件块为对所述待接收文件进行切割得到的,使得终端和设备之间的文件传输不需要每次都进行请求和回复,设备可以连续发送文件块给终端,解决了终端和设备之间进行文件传输时每个文件块都需要请求和回复导致传输速度过慢的问题,获得了快速传输大数据的有益效果。
一实施例中,如图2所示,步骤S150具体包括:
S210、解析所述数据报文得到文件标志、文件标识、文件块长度、文件块偏移地址和文件块。
S220、对文件接收队列进行加锁。
S230、根据所述文件块偏移地址和文件块长度确定所述文件块的文件块位置。
S240、将所述文件标识和文件块位置添加至所述文件接收队列后,对所述文件接收队列进行解锁。
S250、基于所述文件标识和文件块位置通过接收线程连续接收所述文件块。
本实施例中,在设备将待接收文件发送给终端时,终端需要经过接口线程和接收线程来完成文件的接收,其中接口线程是用于接收设备发送的待接收文件,并设置接收队列的线程,接口线程是用于根据接收队列实际接收,即将待接收文件写入终端的线程。具体的,在终端的接口线程中,首先等待接收待接收文件,在接收到设备发送的数据报文后,解析数据报文得到文件标志、文件标识、文件块长度、文件块偏移地址和文件块,然后对文件接收队列进行加锁,防止其他线程更改文件接收队列的顺序,造成数据报文接收的顺序错误,示例性的,当终端设置了多个接口线程时,每个接口线程都有可能随时将新的文件标识和文件块位置添加至文件接收队列,如此就很有可能造成数据报文的接收顺序错误,因此需要对文件接收队列进行加锁。
进一步的,一并参照图3,接口线程接收到数据报文后,首先对数据报文的文件块信息进行解析,得到文件块偏移地址和文件块长度,然后根据文件块偏移地址和文件块长度确定该文件块的文件块位置,相当于确定了该数据报文的接收顺序(即排位),将文件标识和文件块位置根据其排位,并添加至文件接收队列,以明确该数据报文在文件接收队列中的位置和接收顺序,该数据报文在文件接收队列中排第N位,则按该接收顺序第N次接收该数据报文,将文件标识和文件块位置添加至文件接收队列后,就可以对文件接收队列进行解锁,以便将接口线程接收到的下一个数据报文的文件标识和文件块位置根据其排位添加进文件接收队列,此时就可以通知终端的接收线程基于文件接收队列中排位,接收接口线程传输过来的数据报文。
本发明实施例通过将文件接收队列加锁和解锁,确定了数据报文的接收顺序,排除了其他线程对数据报文接收顺序的干扰,保证了待接收文件的顺序接收,并通过接口线程和接收线程分别处理接收到的数据报文,使得接收待接收文件的分工明确、流程稳定。
一实施例中,如图4所示,步骤S250具体包括:
S310、对所述文件接收队列进行加锁。
S320、获取所述文件接收队列中的第一个数据报文后,对所述文件接收队列进行解锁。
本实施例中,在终端的接收线程中,即处理文件块接收的线程中,在对所述文件接收队列进行加锁之前,首先需要判断文件接收队列是否为空,若文件接收队列为空,则等待,若文件接收队列不为空,则也需要先对文件接收队列进行加锁,排除其他线程的干扰,然后获取文件接收队列中的第一个数据报文,因文件接收队列中保存的是文件标识和文件块位置,具体的,接收线程获取文件接收队列中的文件标识和文件块位置后,根据文件标识和文件块位置从接口线程中获取对应的文件块,从而获取接收队列中的第一个数据报文,即接收队列中队首的数据报文,此时第一个数据报文对应的文件标识和文件块位置就在文件接收队列中被删除,对文件接收队列进行解锁,以便当前的数据报文接收完毕后,获取文件接收队列中的下一个数据报文,其中数据报文包括文件标志、文件标识、文件块偏移地址、文件块长度和文件块。
S330、查找当前数据报文的文件标识是否保存在文件哈希表中。
S340、根据查找结果确定所述当前数据报文对应的接收文件记录。
本实施例中,在终端的接收线程中,设置了一个文件哈希表来记录待接收文件的完整情况,所述文件哈希表包括所有接收过的文件块的文件标识和接收文件记录,所述接收文件记录包括文件块偏移地址记录、文件标志记录和丢失文件块哈希表。具体的,一并参照表1,文件哈希表的关键字key为所有接收过的文件块的文件标识,文件哈希表存储的值包括接收文件记录,接收文件记录包括文件块偏移地址记录、文件标志记录和丢失文件块哈希表。其中一个接收文件记录对应一个待接收文件,即对应一个关键字key,文件块偏移地址记录为当前待接收文件接收过的数据报文后对应的偏移地址,例如在文件标识为200212152022996的待接收文件中,接收了三个数据报文,每个数据报文中文件块长度都为1000,那么当前文件块偏移地址记录等于第三个数据报文的文件块偏移地址3001,从而只需要根据文件块偏移地址记录,从3001开始来继续接收第四个数据报文,文件标志记录为当前待接收文件接收过的数据报文对应的文件标志,例如接收了前几个数据报文,那么当前的文件标志记录始终为1,直至接收到该待接收文件的最后一个数据报文,那么文件标志记录会对应的变为0。
关键字key | 文件块偏移地址记录 | 文件标志记录 | 丢失文件块哈希表 |
200212152021996 | 10001 | 0 | 空 |
200212152022996 | 3001 | 1 | 空 |
表1
此外,本发明实施例所提供的文件传输方法在文件传输的过程中使用UDP(UserDategram Protocol,用户数据报协议)协议以保证文件的快速传输,但是UDP协议无重发和纠错功能,不保证数据的可靠传输,在传输过程中可能存在丢失文件块的情况,因此还需要在接收过程中检测到的全部丢失文件块都会将其对应的文件块信息存储在丢失文件块哈希表中,一并参照表2,丢失文件哈希表的关键字key为丢失文件块的文件块偏移地址,存储的值包括丢失文件块的文件块长度。通过丢失文件块哈希表可以使终端通知设备重传丢失文件块时继续保持连续传输,当接收到丢失文件块时,可以直接根据该丢失文件块哈希表进行写入。
关键字key | 文件块长度 |
2001 | 1000 |
4001 | 1000 |
表2
具体的,待接收文件可以为多个,因此需要查找当前数据报文的文件标识是否保存在文件哈希表中,从而判断该数据报文对应的待接收文件是否之前接收过,即判断是否第一次处理该数据报文对应的待接收文件,若当前数据报文的文件标识没有保存在文件哈希表中,说明终端的接收线程是第一次接收该待接收文件,则需要创建一个新的与该待接收文件对应的接收文件记录,该接收文件记录的关键字key为该待接收文件的文件标识,即该数据报文的文件标识。若当前数据报文的文件标识保存在文件哈希表中,说明终端的接收线程不是第一次接收该待接收文件,则可以直接使用该同一待接收文件的接收文件记录。
S350、基于所述当前数据报文对应的接收文件记录将所述当前数据报文中的文件块写入接收文件中,并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录。
本实施例中,确定了该数据报文对应的接收文件记录后,就可以基于当前数据报文对应的接收文件记录将所述当前数据报文中的文件块写入接收文件中,并并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录。具体的,将当前数据报文的文件标志更新至所述文件标志记录,将所述文件块偏移地址和文件块长度更新至文件块偏移地址记录,这样在接收该待接收文件的下一个数据报文时就可以直接根据更新好的文件接收记录来接收文件块,不需要终端和设备之间的请求和回复,并保证了接收顺序的准确性。
S360、根据所述文件标志记录和丢失文件块哈希表判断所述接收文件是否完整。
S370、若所述接收文件完整,删除所述接收文件记录以接收下一个待接收文件,直至全部的所述接收文件写入完成。
本实施例中,在接收该文件块后,还需要根据文件标志记录和丢失文件块哈希表判断所述接收文件是否完整。具体的,当文件标志记录为零,且丢失文件哈希表为空时,确定该待接收文件完整接收,即该接收文件完成写入,此时需要在文件哈希表中删除该接收文件的接收文件记录,以便接收下一个待接收文件时创建新的接收文件记录,直至设备发送的全部待接收文件发送完成,终端接收的全部接收文件写入完成。一并参照表1,例如在文件标识为200212152022996的待接收文件中,该待接收文件已接收完整,此时将删除其中的文件块偏移地址记录、文件标志记录和丢失文件块哈希表,但还会保留其中的文件标识,即关键字key以记录该待接收文件已经接收完整。若文件标志记录不为零,或者丢失文件哈希表不为空时,则说明该待接收文件存在丢失文件块,该接收文件写入不完整,此时需要回到步骤S310,直至该接收文件完整。
本发明实施例通过对每一个待接收文件设置一个文件哈希表,保证了文件传输时的顺序正确,且不需要设备和终端之间的请求和回复,基于UDP协议快速传输时,通过文件哈希表中的丢失文件块哈希表准确获取丢失文件块的信息,并且也保证了丢失文件块的连续传输,大大加快了文件传输速度。
一实施例中,如图5所示,步骤S350之前包括:
S410、判断所述当前数据报文的的文件标识与上一个数据报文的的文件标识是否相同。
S420、若所述当前数据报文的的文件标识与上一个数据报文的文件标识不同时,查找所述文件哈希表中是否存在上一个待接收文件的接收文件记录。
S430、若所述文件哈希表中存在上一个待接收文件的接收文件记录,获取上一个待接收文件的接收文件记录。
S440、根据所述上一个待接收文件的接收文件记录生成所述丢失文件块的丢失信息,所述丢失信息包括丢失文件标识、丢失文件长度和丢失文件偏移地址。
S450、将所述丢失信息写入上一个待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
本实施例中,在将当前数据报文中的文件块写入接收文件中之前,还需要检测该文件块与丢失文件块的联系。首先判断当前数据报文的的文件标识与上一个数据报文的的文件标识是否相同,即判断当前数据报文是属于新的待接收文件还是属于上一个待接收文件。若当前数据报文的的文件标识与上一个数据报文的文件标识相同时,则可以继续执行步骤S350,若当前数据报文的的文件标识与上一个数据报文的文件标识不同时,则需要检测上一个待接收文件是否接收完整,具体去查找所述文件哈希表中是否存在上一个待接收文件的接收文件记录,若文件哈希表中不存在上一个待接收文件的接收文件记录,则说明上一个待接收文件接收完整,可以继续执行步骤S350,若文件哈希表中存在上一个待接收文件的接收文件记录,则获取上一个待接收文件的接收文件记录,此时还需要根据接收文件记录判断上一个待接收文件是否接收到最后一个文件块,即根据上一个待接收文件的接收文件记录中的文件标志记录判断是0还是1,若该文件标志记录为0,则说明上一个待接收文件接收到了最后一个文件块,上一个待接收文件不存在丢失文件块,继续执行步骤S350,若该文件标志记录为1,则说明上一个待接收文件存在丢失文件块,此时需要根据上一个待接收文件的接收文件记录生成丢失文件块的丢失信息,其中丢失信息包括丢失文件标识、丢失文件长度和丢失文件偏移地址,然后将丢失信息写入上一个待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
本发明实施例通过在接收新的待接收文件对应的数据报文时,查找文件哈希表中是否存在上一个待接收文件的接收文件记录,并进一步判断是否接受到上一个待接收文件中的最后一个文件块,准确的检测到了上一个待接收文件中的丢失文件块,保证了文件传输的准确性。
一实施例中,如图6所示,在上一个实施例的基础上,步骤S410之后以及步骤S350之前还包括:
S510、判断当前数据报文中的文件块信息是否存在于所述丢失文件块哈希表中。
S520、若当前数据报文中的文件块信息存在于所述丢失文件块哈希表中,基于所述当前数据报文的接收文件记录将所述当前数据报文的文件块写入接收文件中,并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录,删除所述丢失文件块哈希表中的当前数据报文。
S530、判断所述丢失文件块哈希表是否为空。
S540、若所述丢失文件块哈希表为空,删除所述接收文件记录以接收下一个待接收文件,直至全部的所述接收文件写入完成。
本实施例中,在上一个实施例的基础上,判断当前数据报文的的文件标识与上一个数据报文的的文件标识是否相同之后,还需要判断当前数据报文的文件块是不是就为丢失文件块,即判断当前数据报文中的文件块信息是否存在于所述丢失文件块哈希表中,若当前数据报文中的文件块信息不存在于所述丢失文件块哈希表中,则可以继续执行步骤S350,若当前数据报文中的文件块信息存在于所述丢失文件块哈希表中,即丢失文件块哈希表中的丢失文件长度和丢失文件块偏移地址所表示的丢失文件块位置包括了当前数据报文的文件块位置,则说明当前接收的数据报文的文件块就是丢失文件块,该数据报文为丢失数据报文,此时需要基于所述当前数据报文的接收文件记录将所述当前数据报文的文件块写入接收文件中,并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录,具体的,将当前数据报文的文件标志更新至该待接收文件的接收文件记录中的文件标志记录,将当前数据报文的文件块偏移地址和文件块长度更新至该待接收文件的接收文件记录中的文件块偏移地址记录。最后还需要在丢失文件块哈希表中删除该丢失数据报文相关的信息。
进一步的,将该丢失数据报文的丢失文件块写入接收文件后,还需要判断接收文件的丢失文件块哈希表是否为空,若该丢失文件块哈希表不为空,则需要重复开始执行步骤S310,直到该接收文件被完整写入,若丢失文件块哈希表为空,则表示该接收文件写入完成,删除接收文件记录以接收下一个待接收文件,直至全部的所述接收文件写入完成。
本发明实施例通过文件哈希表中的丢失文件块哈希表准确获取丢失文件块的信息,并且也保证了丢失文件块的连续传输,大大加快了文件传输速度。
一实施例中,如图7所示,在上一个实施例的基础上,步骤S510之后以及步骤S350之前包括:
S610、若当前数据报文中的文件块信息不存在于所述丢失文件块哈希表中,根据所述当前数据报文的文件偏移地址和所述文件块偏移地址记录判断所述当前数据报文是否连续。
S620、若所述当前数据报文不连续,判定当前待接收文件存在丢失文件块。
S630、根据所述当前数据报文的文件偏移地址和所述文件块偏移地址记录确定丢失文件块的丢失信息。
S640、将所述丢失信息写入所述当前待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
本实施例中,仅仅通过步骤S410-步骤S450中的检测上一个待接收文件是否接受了最后一个文件块来确定是否存在丢失文件块是不够的,因此本实施例在当前数据报文中的文件块信息不存在于所述丢失文件块哈希表中时,还所述当前数据报文的文件偏移地址和所述文件块偏移地址记录判断所述当前数据报文是否连续,若当前数据报文的文件偏移地址和所述文件块偏移地址记录是同步且对应的,则说明当前数据报文连续,不存在丢失文件块,可以继续执行步骤S350,若当前数据报文不连续,则可以判定当前待接收文件存在丢失文件块,根据当前数据报文的文件偏移地址和所述文件块偏移地址记录确定丢失文件块的丢失信息,其中丢失信息包括丢失文件标识、丢失文件长度和丢失文件偏移地址,示例性的,当前数据报文的文件偏移地址为3001,文件块偏移地址记录为2001,则丢失文件长度为1000,丢失文件偏移地址为2001。然后将丢失信息写入所述当前待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
但是,当丢失文件块为该待接收文件尾端的数据报文时,此时检测到该待接收文件的数据报文都是连续的,此时就可以通过步骤S410-步骤S450检测到其丢失的丢失文件块,因此本发明实施例通过与步骤S410-步骤S450的结合,可以完成丢失文件块的完整检测,大大提高了文件传输的准确性。
如图8所示,在一个实施例中,提供了一种文件传输方法。该方法应用于设备。该文件传输方法具体包括如下步骤:
S710、接收终端在局域网内发送的发现广播包。
S720、响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息。
S730、接收所述终端返回的异步传输配置信息。
本实施例中,该文件传输方法应用于终端和设备之间的文件传输,终端可以为计算机终端、上位机等等,即用户的执行端,设备可以为电视机、冰箱等数据收集端,设备和终端都位于同一个局域网内,其之间可以进行无线或者有线的通信,其通信协议可以为TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议)协议,TCP/IP协议是指能够在多个不同网络间实现信息传输的协议簇,包含大量的协议和应用。
具体的,设备首先接收终端基于IP协议发送至局域网内的发现广播包,在同一个局域网内的设备都会收到该发现广播包,设备收到该发现广播包后,响应于所述发现广播包回复地址信息至所述终端,具体包括自身的IP地址和MAC(Media Access ControlAddress,媒体存取控制位址)地址给终端,所述终端用于接收到多个在局域网中的设备回复的地址信息后,用户可以控制终端选择要接收文件的对象,选择一个设备进行配置,并根据该设备的地址信息发送异步传输配置信息至该设备,设备会接收所述终端返回的异步传输配置信息。其中异步传输配置信息基于Modbus/UDP(Modbus协议的一种)协议生成,异步传输配置信息包括异步文件传输时间,当异步文件传输时间为零时,设备将停止发送文件给终端,终端通过不断发送异步传输配置信息给设备,从而控制设备的文件传输时间。
S740、基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的。
S750、当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
本实施例中,设备在获得待接收文件后,需要对待接收文件进行切割,生成多个文件块,此时还需要根据自行设定的异步文件传输协议将这些文件块转换为数据报文,数据报文包括文件块和与这些文件块一一对应的文件块信息,文件块信息包括文件标志、文件标识、文件块偏移地址和文件块长度,所述文件标志用于标识所述文件块是否为最后一个文件块,所述文件标识用于标识所述文件块从属的待接收文件,所述文件块偏移地址和文件块长度用于标识所述文件块在所述待接收文件中的文件块位置。示例性的,文件标志用0和1的字段表示,1表示该待接收文件后面还存在文件块,0表示该文件块为该待接收文件中的最后一个文件块,文件标识可以用当前待接收文件的发送时间表示,例如用“年月时分秒毫秒”的字段表示,文件块偏移地址可以用字节表示,例如第一个文件块的文件块偏移地址为1,第一个文件块的文件块长度为1000,那么第二个文件块的文件块偏移地址为1001,依此类推,文件块长度即表示文件块的数据字段的字节长度,文件块即文件块的数据内容,以二进制形式表示。
其中,根据文件块信息可以确定每个文件块在整个待接收文件中的位置和其他信息,因此终端在接收待接收文件时,就不需要再每次接收文件块时请求设备并等待设备回复来确定文件块的信息,而可以直接基于数据报文中的文件块信息连续接收文件块,根据文件块信息确认这些文件块在待接收文件中的位置,从而写入接收文件,直至接收整个待接收文件后,继续接收下一个待接收文件,完成快速的大数据传输。
本实施例中,当异步传输配置信息指示传输时,即异步文件传输时间不为零时,设备开始连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
本发明实施例通过终端对设备进行异步传输配置,当异步传输配置信息指示传输时,终端接收设备基于异步传输配置信息连续发送的多个数据报文,其中数据报文包括文件块和文件块信息,从而使终端基于文件块信息连续接收所述文件块,直至完整接收待接收文件,其中数据报文为所述设备基于异步文件传输协议转换得到的,所述文件块为对所述待接收文件进行切割得到的,使得终端和设备之间的文件传输不需要每次都进行请求和回复,设备可以连续发送文件块给终端,解决了终端和设备之间进行文件传输时每个文件块都需要请求和回复导致传输速度过慢的问题,获得了快速传输大数据的有益效果。
一实施例中,如图9所示,该方法还包括:
S760、接收所述终端发送的丢失文件块的丢失信息。
S770、根据所述丢失信息确定丢失数据报文。
S780、当所述异步传输配置信息指示传输时,连续发送所述丢失数据报文至所述终端。
本实施例中,本发明实施例所提供的文件传输方法在文件传输的过程中使用UDP协议以保证文件的快速传输,但是UDP协议无重发和纠错功能,不保证数据的可靠传输,在传输过程中可能存在丢失文件块的情况,因此在执行该文件传输方法时,设备还会接收到终端发送的丢失文件块的丢失信息,此时设备根据丢失信息确定丢失数据报文,在所有的数据报文中查找到丢书数据报文,当异步传输配置信息指示传输时,连续发送所述丢失数据报文至所述终端。
需要说明的是,在接收到丢失信息时,设备会优先发送连续发送所述丢失数据报文至所述终端,以保证终端完整接收到该待接收文件,此时设备才会继续发送下一个待接收文件或下一个数据报文。
一实施例中,如图10所示,步骤S750具体包括:
S810、根据所述异步传输配置信息判断是否满足发送条件。
S820、若满足发送条件,对文件发送队列进行加锁。
S830、根据所述文件块偏移地址和文件块长度确定所述文件块的文件块位置。
S840、将所述文件标识和文件块位置添加至所述文件发送队列后,对所述文件发送队列进行解锁。
S850、基于所述文件标识和文件块位置通过发送线程连续发送多个所述数据报文至所述终端。
本实施例中,在设备将待接收文件发送给终端时,设备需要经过接口线程和发送线程来完成文件的发送,其中接口线程是用于在设备中获取并准备发送待接收文件,并设置发送队列的线程,发送线程是用于根据发送队列实际发送,即将待接收文件发送至终端的线程。具体的,在设备的接口线程中,首先需要根据所述异步传输配置信息判断是否满足发送条件,其中所述发送条件包括异步文件传输时间不为零,所述发送队列不满,所述待接收文件存在,所述异步文件传输时间为进行所述异步传输配置信息时实时配置更新得到的。当足发送条件,对文件发送队列进行加锁,防止其他线程的干扰,造成数据报文发送的顺序错误,然后根据文件块偏移地址和文件块长度确定所述文件块的文件块位置,相当于确定了该数据报文的发送顺序,将文件标识和文件块位置根据其发送顺序添加至文件发送队列,对文件发生队列进行解锁,以便将下一个数据报文的文件标识和文件块位置根据其发送顺序添加进文件发送队列,此时就可以通知设备的发送线程基于文件接收队列中的文件标志、文件标识和文件块位置,发送多个所述数据报文至所述终端。
本发明实施例通过将文件发送队列加锁和解锁,确定了数据报文的发送顺序,排除了其他线程对数据报文发送顺序的干扰,保证了待接收文件的顺序发送,并通过接口线程和发送线程分别处理接收到的数据报文,使得发送待接收文件的分工明确、流程稳定。
一实施例中,如图11所示,步骤S850具体包括:
S910、对所述发送线程的文件发送队列进行加锁。
S920、获取所述文件发送队列中的第一个数据报文后,对所述文件发送队列进行解锁。
本实施例中,在设备的发送线程中,即处理文件块发送的线程中,首先需要判断文件发送队列是否为空,若文件发送队列为空,则等待,若文件发送队列不为空,则也需要先对文件发送队列进行加锁,排除其他线程的干扰,然后文件发送队列中的第一个数据报文,对文件发送队列进行解锁,此时第一个数据报文就在文件发送队列中被删除,以便当前的数据报文接收完毕后,获取文件发送队列中的下一个数据报文,其中所述数据报文包括文件标志、文件标识和文件块位置,相当于数据报文包括文件标志、文件标识、文件块偏移地址、文件块长度和文件块。
S930、根据所述文件块位置生成文件读取偏移地址,并生成所述待接收文件的发送文件记录。
S940、基于所述文件读取偏移地址和最大发送量对应的发送长度读取所述文件块。
S950、根据所述文件标志和读取的读取长度确定文件发送长度。
S960、根据所述文件发送长度将所述数据报文组帧后发送至所述终端,将所述文件块偏移地址更新至所述发送文件记录,并基于更新后的文件发送长度读取所述文件块,直至所述读取长度为零。
本实施例中,获取第一个数据报文后,就可以根据该数据报文中的文件块位置生成文件读取偏移地址,并生成该待接收文件的发送文件记录,其中一个发送文件记录对应一个待接收文件,然后基于文件读取偏移地址和最大发送量对应的发送长度读取所述文件块,并根据文件标志和读取的读取长度确定文件发送长度,其中,若读取长度为0,则说明该待接收文件已经全部发送,则关闭该待接收文件,回到步骤S910,若读取长度不为0,则还需要根据文件标志判断该数据报文对应的文件块是否为最后一个文件块,若该文件块不为最后一个文件块,则设置还有更多文件块的标志,并更新至发送文件记录中,若该文件块是最后一个文件块,则设置最后一个文件块的标志,并更新至发送文件记录中,最后根据读取长度确定文件发送长度,即读取长度就为文件发送长度,根据文件发送长度将所述数据报文组帧后发送至所述终端,并将文件块偏移地址更新至所述发送文件记录,这样在发送该待接收文件的下一个数据报文时就可以直接根据更新好的文件发送记录来发送文件块,不需要终端和设备之间的请求和回复,并保证了接收顺序的准确性。最后基于更新后的文件发送长度读取所述文件块,直至所述读取长度为零,即完成一个待接收文件的发送,然后继续发送下一个待接收文件。
图12示出了一个实施例中文件传输设备的内部结构图。如图12所示,该文件传输设备可以为作为文件发送方的设备,也可以为作为文件接收方的终端,该文件传输设备包括通过系统总线连接的处理器、存储器和网络接口。其中,存储器包括非易失性存储介质和内存储器。该终端的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现年龄识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行年龄识别方法。本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种文件传输设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的;
以及接收终端在局域网内发送的发现广播包;响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;接收所述终端返回的异步传输配置信息;基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
在一个实施例中,提出了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
发送发现广播包至局域网内;接收在所述局域网中的设备根据所述发现广播包回复的地址信息;根据所述地址信息发送异步传输配置信息至所述设备;当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的;
以及接收终端在局域网内发送的发现广播包;响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;接收所述终端返回的异步传输配置信息;基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种文件传输方法,应用于终端,其特征在于,所述方法包括:
发送发现广播包至局域网内;
接收在所述局域网中的设备根据所述发现广播包回复的地址信息;
根据所述地址信息发送异步传输配置信息至所述设备;
当所述异步传输配置信息指示传输时,接收所述设备连续发送的多个数据报文,每个数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的,所述文件块信息用于指示所述文件块在所述待接收文件中的位置;
基于所述文件块信息连续接收所述文件块,直至完整接收待接收文件,所述数据报文为所述设备基于异步文件传输协议转换得到的。
2.根据权利要求1所述的方法,其特征在于,所述文件块信息包括文件标志、文件标识、文件块偏移地址和文件块长度,所述文件标志用于标识所述文件块是否为最后一个文件块,所述文件标识用于标识所述文件块从属的待接收文件,所述文件块偏移地址和文件块长度用于标识所述文件块在所述待接收文件中的文件块位置;所述基于所述文件块信息连续接收所述文件块包括:
解析所述数据报文得到所述文件标志、文件标识、文件块长度、文件块偏移地址和文件块;
对文件接收队列进行加锁;
根据所述文件块偏移地址和文件块长度确定所述文件块的文件块位置;
将所述文件标识和文件块位置添加至所述文件接收队列后,对所述文件接收队列进行解锁;
基于所述文件标识和文件块位置通过接收线程连续接收所述文件块。
3.根据权利要求2所述的方法,其特征在于,所述基于所述文件标识和文件块位置通过接收线程连续接收所述文件块包括:
对所述文件接收队列进行加锁;
获取所述文件接收队列中的第一个数据报文后,对所述文件接收队列进行解锁,所述数据报文包括文件标志、文件标识、文件块偏移地址、文件块长度和文件块;
查找当前数据报文的文件标识是否保存在文件哈希表中,所述文件哈希表包括所有接收过的文件块的文件标识和接收文件记录,所述接收文件记录包括文件块偏移地址记录、文件标志记录和丢失文件块哈希表;
根据查找结果确定所述当前数据报文对应的接收文件记录;
基于所述当前数据报文对应的接收文件记录将所述当前数据报文中的文件块写入接收文件中,并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录;
根据所述文件标志记录和丢失文件块哈希表判断所述接收文件是否完整;
若所述接收文件完整,删除所述接收文件记录以接收下一个待接收文件,直至全部的所述接收文件写入完成。
4.根据权利要求3所述的方法,其特征在于,所述基于所述当前数据报文的文件接收逻辑变量和将所述当前数据报文的文件块写入接收文件中之前包括:
判断所述当前数据报文的的文件标识与上一个数据报文的的文件标识是否相同;
若所述当前数据报文的的文件标识与上一个数据报文的文件标识不同时,查找所述文件哈希表中是否存在上一个待接收文件的接收文件记录;
若所述文件哈希表中存在上一个待接收文件的接收文件记录,获取上一个待接收文件的接收文件记录;
根据所述上一个待接收文件的接收文件记录生成所述丢失文件块的丢失信息,所述丢失信息包括丢失文件标识、丢失文件长度和丢失文件偏移地址;
将所述丢失信息写入上一个待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
5.根据权利要求4所述的方法,其特征在于,所述判断所述当前数据报文的的文件标识与上一个数据报文的的文件标识是否相同之后包括:
判断当前数据报文中的文件块信息是否存在于所述丢失文件块哈希表中;
若当前数据报文中的文件块信息存在于所述丢失文件块哈希表中,基于所述当前数据报文的接收文件记录将所述当前数据报文的文件块写入接收文件中,并将所述当前数据报文的文件标志、文件块偏移地址、文件块长度更新至所述文件块偏移地址记录和文件标志记录,删除所述丢失文件块哈希表中的当前数据报文;
判断所述丢失文件块哈希表是否为空;
若所述丢失文件块哈希表为空,删除所述接收文件记录以接收下一个待接收文件,直至全部的所述接收文件写入完成。
6.根据权利要求4所述的方法,其特征在于,所述判断当前数据报文中的文件块信息是否存在于所述丢失文件块哈希表中之后包括:
若当前数据报文中的文件块信息不存在于所述丢失文件块哈希表中,根据所述当前数据报文的文件偏移地址和所述文件块偏移地址记录判断所述当前数据报文是否连续;
若所述当前数据报文不连续,判定当前待接收文件存在丢失文件块;
根据所述当前数据报文的文件偏移地址和所述文件块偏移地址记录确定丢失文件块的丢失信息;
将所述丢失信息写入所述当前待接收文件的丢失文件块哈希表,并发送给所述设备,以使所述设备重新传输所述丢失文件块。
7.一种文件传输方法,应用于设备,其特征在于,所述方法包括:
接收终端在局域网内发送的发现广播包;
响应于所述发现广播包回复地址信息至所述终端,所述终端用于根据所述地址信息进行异步传输配置信息;
接收所述终端返回的异步传输配置信息;
基于异步文件传输协议将待接收文件转换为多个数据报文,所述数据报文包括文件块和文件块信息,所述文件块为对所述待接收文件进行切割得到的;
当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端,以使所述终端基于所述文件块信息连续接收所述文件块,直至完整接收至少一个所述待接收文件。
8.根据权利要求7所述的方法,其特征在于,所述文件块信息包括文件标志、文件标识、文件块偏移地址和文件块长度,所述文件标志用于标识所述文件块是否为最后一个文件块,所述文件标识用于标识所述文件块从属的待接收文件,所述文件块偏移地址和文件块长度用于标识所述文件块在所述待接收文件中的文件块位置;所述当所述异步传输配置信息指示传输时,连续发送多个所述数据报文至所述终端包括:
根据所述异步传输配置信息判断是否满足发送条件;
若满足发送条件,对文件发送队列进行加锁;
根据所述文件块偏移地址和文件块长度确定所述文件块的文件块位置;
将所述文件标识和文件块位置添加至所述文件发送队列后,对所述文件发送队列进行解锁;
基于所述文件标识和文件块位置通过发送线程连续发送多个所述数据报文至所述终端。
9.根据权利要求8所述的方法,其特征在于,所述基于所述文件标识和文件块位置通过发送线程连续发送多个所述数据报文至所述终端包括:
对所述发送线程的文件发送队列进行加锁;
获取所述文件发送队列中的第一个数据报文后,对所述文件发送队列进行解锁,所述数据报文包括文件标志、文件标识和文件块位置;
根据所述文件块位置生成文件读取偏移地址,并生成所述待接收文件的发送文件记录;
基于所述文件读取偏移地址和最大发送量对应的发送长度读取所述文件块;
根据所述文件标志和读取的读取长度确定文件发送长度;
根据所述文件发送长度将所述数据报文组帧后发送至所述终端,将所述文件块偏移地址更新至所述发送文件记录,并基于更新后的文件发送长度读取所述文件块,直至所述读取长度为零。
10.一种文件传输设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-6或7-9中任一项所述方法的步骤。
11.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1-6或7-9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011489315.9A CN112583923B (zh) | 2020-12-16 | 2020-12-16 | 一种文件传输方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011489315.9A CN112583923B (zh) | 2020-12-16 | 2020-12-16 | 一种文件传输方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112583923A true CN112583923A (zh) | 2021-03-30 |
CN112583923B CN112583923B (zh) | 2022-08-30 |
Family
ID=75135554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011489315.9A Active CN112583923B (zh) | 2020-12-16 | 2020-12-16 | 一种文件传输方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112583923B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986438A (zh) * | 2021-10-30 | 2022-01-28 | 深圳市快易典教育科技有限公司 | 动画的加载方法、系统、装置及计算机可读存储介质 |
CN114979040A (zh) * | 2022-05-07 | 2022-08-30 | 成都数之联科技股份有限公司 | 一种udp报文写入方法及系统及装置及介质 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172201A1 (en) * | 1998-02-24 | 2003-09-11 | Shinichi Hatae | Data communication system, data communication method, and data communication apparatus |
US20040252709A1 (en) * | 2003-06-11 | 2004-12-16 | Fineberg Samuel A. | System having a plurality of threads being allocatable to a send or receive queue |
CN102611531A (zh) * | 2012-03-12 | 2012-07-25 | 成都龙冠科技实业有限公司 | 一种单向数据传输方法 |
CN109246207A (zh) * | 2018-08-28 | 2019-01-18 | 优视科技新加坡有限公司 | 近场文件传输方法及其装置 |
CN109936588A (zh) * | 2017-12-15 | 2019-06-25 | 华为技术有限公司 | 一种物联网数据传输方法、设备及系统 |
CN111147564A (zh) * | 2019-12-20 | 2020-05-12 | 国久大数据有限公司 | 数据文件传输方法、系统及通信终端 |
-
2020
- 2020-12-16 CN CN202011489315.9A patent/CN112583923B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172201A1 (en) * | 1998-02-24 | 2003-09-11 | Shinichi Hatae | Data communication system, data communication method, and data communication apparatus |
US20040252709A1 (en) * | 2003-06-11 | 2004-12-16 | Fineberg Samuel A. | System having a plurality of threads being allocatable to a send or receive queue |
CN102611531A (zh) * | 2012-03-12 | 2012-07-25 | 成都龙冠科技实业有限公司 | 一种单向数据传输方法 |
CN109936588A (zh) * | 2017-12-15 | 2019-06-25 | 华为技术有限公司 | 一种物联网数据传输方法、设备及系统 |
CN109246207A (zh) * | 2018-08-28 | 2019-01-18 | 优视科技新加坡有限公司 | 近场文件传输方法及其装置 |
CN111147564A (zh) * | 2019-12-20 | 2020-05-12 | 国久大数据有限公司 | 数据文件传输方法、系统及通信终端 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986438A (zh) * | 2021-10-30 | 2022-01-28 | 深圳市快易典教育科技有限公司 | 动画的加载方法、系统、装置及计算机可读存储介质 |
CN113986438B (zh) * | 2021-10-30 | 2024-01-30 | 深圳市快易典教育科技有限公司 | 动画的加载方法、系统、装置及计算机可读存储介质 |
CN114979040A (zh) * | 2022-05-07 | 2022-08-30 | 成都数之联科技股份有限公司 | 一种udp报文写入方法及系统及装置及介质 |
CN114979040B (zh) * | 2022-05-07 | 2024-02-20 | 成都数之联科技股份有限公司 | 一种udp报文写入方法及系统及装置及介质 |
CN115277880A (zh) * | 2022-06-17 | 2022-11-01 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
CN115277880B (zh) * | 2022-06-17 | 2024-04-19 | 奇安信科技集团股份有限公司 | 网络报文解析方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112583923B (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112583923B (zh) | 一种文件传输方法、设备和存储介质 | |
US8195757B2 (en) | Method, apparatus and computer program for controlling retention of publications | |
US20070076625A1 (en) | Data communication apparatus | |
CN110413650B (zh) | 一种业务数据的处理方法、装置、设备和存储介质 | |
CN108134775B (zh) | 一种数据处理方法和设备 | |
CN111817984B (zh) | 消息发送方法、装置、设备及存储介质 | |
CN112702259B (zh) | 延迟消息推送方法、装置及消息中间件 | |
CN113542420B (zh) | 热点文件的处理方法、装置、电子设备和介质 | |
CN112202674B (zh) | 一种组播报文的转发处理方法、装置、设备及存储介质 | |
CN114647698A (zh) | 数据同步方法、装置及计算机存储介质 | |
CN110311855B (zh) | 用户消息处理方法、装置、电子设备及存储介质 | |
CN112559219A (zh) | 一种物联网离线消息管理方法、装置、设备及存储介质 | |
CN117874079A (zh) | 一种基于snmp4j的数据查询方法和装置 | |
CN112969198A (zh) | 数据传输方法、终端及存储介质 | |
CN115309907B (zh) | 告警日志关联方法及装置 | |
CN113992364B (zh) | 一种网络数据包阻断优化方法以及系统 | |
CN114221925B (zh) | 消息推送方法、装置、电子设备及存储介质 | |
CN109688204B (zh) | 基于ndn网络的文件下载方法、节点、终端 | |
CN111669431B (zh) | 消息传输方法、装置、计算机设备和存储介质 | |
CN114531450A (zh) | 一种基于高度的区块链对等网络数据同步方法 | |
CN113542406A (zh) | 一种系统间消息的异步处理系统 | |
CN112422408A (zh) | 消息处理方法、装置、设备及存储介质 | |
CN114651236A (zh) | 资源删除方法、装置、设备及存储介质 | |
CN115086001B (zh) | 采样数据缓存方法、装置及存储介质 | |
CN105978865B (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 |