文件传输方法、终端、电子设备及存储介质与流程

文档序号:20702089发布日期:2020-05-12 15:51阅读:145来源:国知局
文件传输方法、终端、电子设备及存储介质与流程

本发明实施例涉及信息技术领域,特别涉及一种文件传输方法、终端、电子设备及存储介质。



背景技术:

不管是互联网,还是物联网,实现信息的共享是一个非常重要的内容,也其中的一大特点。现有的文件传输协议ftp是用于在网络上进行文件传输的一套标准协议,客户端和服务端的链接建立都需要经过一个“握手”过程,保证间接可靠。

对于目前标准的文件传输协议ftp而言,支持访问客户对本地文件的增、删、改、查和传输等操作,在不同的系统的设备上进行文件传输时,需要每一个设备都支持这个协议,由于协议功能较多,因此在各个不同系统的设备上移植时较为困难。



技术实现要素:

本发明实施例的目的在于提供一种文件传输方法、终端、电子设备及存储介质,使得文件传输过程得到简化,使得文件传输的功能可以方便地在不同设备间移植,提高了不同设备间文件传输的效率。

为解决上述技术问题,本发明的实施例提供了一种文件传输方法,包括:获取待传输的目标文件;根据预设的目标传输协议对目标文件进行数据封装生成至少两个数据包,其中,目标传输协议以at指令设计;向预设的接收终端发送一个数据包并在接收到接收终端回传预设的确认消息后,向接收终端发送下一个数据包;向接收终端发送验证信息并接收接收终端响应于验证信息回传的验证结果。

本发明的实施例提供了一种文件传输方法,包括:在接收到发送终端发送的一个数据包后,根据预设的传输协议向发送终端返回响应于数据包的确认消息;在接收到发送终端发送的验证信息后,利用验证信息对目标文件的进行验证,并向发送终端返回目标文件的验证结果。

本发明的实施例还提供了一种发送终端,包括:文件获取模块,用于获取待传输的目标文件;数据包封装模块,用于根据预设的目标传输协议对目标文件进行数据封装生成至少两个数据包,目标传输协议以at指令设计;数据发送模块,用于向预设的接收终端发送数据包,以及接收终端发送验证信息;消息接收模块,用于接收到接收终端回传预设确认消息,以及接收接收终端响应于验证信息回传的验证结果。

本发明实施例相对于现有技术而言,利用at指令重新对文件传输协议进行设计,同时仅保留文件数据传输的功能,简化了文件传输过程,使得文件传输的功能可以方便地在不同设备间移植,同时也提高了不同设备间文件传输的效率。

另外,目标文件中包括定义目标文件文件类型的第一数据指令、定义目标文件文件大小的第二数据指令以及定义目标文件数据包总包数的第三数据指令,在向预设的接收终端发送数据包并在接收到接收终端回传预设的确认消息后,向接收终端发送下一个数据包之前,还包括:向接收终端发送第一数据指令;接收接收终端响应第一数据指令而回传的第一目标消息。向接收终端发送第二数据指令;接收接收终端响应第二数据指令而回传的第二目标消息。向接收终端发送第三数据指令;接收接收终端响应第三数据指令而回传的第三目标消息。传输双方在文件传输之前确认文件的类型、大小以及数据包数量,确保文件传输过程的正确性。

另外,在向接收终端发送下一个数据包之后,包括:获取发包参数,其中,所述发包参数包括已发数据包的个数;将所述发包参数与所述第三数据指令中的总包数进行比较;若所述发包参数与所述总包数的数量相同时,则停止向所述接收终端发送数据包;否则,则继续向所述接收终端发送数据包。分包发送并在发送每一包后进行接收成功的确认消息,以保证文件传输过程中数据包的稳定性。

另外,向接收终端发送验证信息并接收接收终端响应于验证信息回传的验证结果,包括:根据预设的验证规则对目标文件进行数据处理生成验证信息;将验证信息发送至接收终端,以使接收终端接受到验证信息后进行数据验证。对在数据包发送完成后对文件的进行验证,能够确保接收到的文件的完整性。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1是根据本发明第一实施例的文件传输方法的流程图;

图2是根据本发明第一实施例中文件传输过程的示意图;

图3是根据本发明第二实施例中文件传输方法的流程图;

图4是根据本发明第三实施例中用于发送文件的终端的结构图;

图5是根据本发明第四实施例中用于接收文件的终端的结构图;

图6是根据本发明第五实施例中电子设备的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。

本发明的第一实施例涉及一种文件传输方法,应用于文件发送终端,具体流程如图1所示,包括:获取待传输的目标文件;根据预设的目标传输协议对目标文件进行数据封装生成至少两个数据包,其中,目标传输协议以at指令设计;向预设的接收终端发送一个数据包并在接收到接收终端回传预设的确认消息后,向接收终端发送下一个数据包;向接收终端发送验证信息并接收接收终端响应于验证信息回传的验证结果。

下面对本实施例的文件传输方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。

本实施例中的文件传输方法如图1所示,具体包括:

步骤101,获取待传输的目标文件。

具体的说,发送文件的终端首先从存储设备中读取目标文件的完整数据。在获取到文件后,从目标文件中读取该文件的文件类型、文件大小、文件总包数等信息,用于后续步骤中与接收终端建立连接。

步骤102,根据预设的目标传输协议对所述目标文件进行数据封装生成至少两个数据包。其中,所述目标传输协议可为ftp(filetransferprotocol,文件传输协议),但本发明不限于此。

具体的说,根据预设的目标传输协议将文件分割为多个大小一定的数据块并封装成数据包。其中,预设的目标传输协议以at指令设计,该协议仅具有文件的传输功能,支持各种文件类型,包括:mcu微控制单元文件、音频文件、电控文件等。且所有的控制指令均由at指令来进行设计,保证了传输协议结构的简单。

步骤103,向预设的接收终端发送一个数据包,并在接收到接收终端回传预设的确认消息后发送下一个数据包。

具体的说,以一个具体的实现为例,发送终端与接收终端在文件传输中的具体交互过程如图2所示。

图中device1表示发送终端、device2表示接收终端。

首先,发送终端向接收终端发送第一数据指令at+ftp=0,filetype$\r\n,第一数据指令包含目标文件的文件类型,并等待10s的超时时间。其中超时时间由用户预先根据实际设备情况或网络情况来进行设置。如果在设置的超时时间内,发送终端接收到了接收终端返回收到文件类型的确认消息,则进行下一步骤。在本发明的文件传输协议中,目标消息内容为ack确认字符,ack类型包括ready、busy、reject。若接收终端成功接收到发送终端发送的文件类型,则返回包含ack:ready$\r\n的第一目标消息,若超时则回复其他类型的ack字符。

在发送终端接收到接收终端返回的确认收到文件类型的第一目标消息后,向接收终端发送第二数据指令at+ftp=1,filesize$\r\n,等待200ms的超时时间,第二数据指令包含目标文件的文件大小。同样的,若接收终端成功接收到发送终端发送的文件大小,则返回包含ack:ready$\r\n的第二目标消息,若超时则回复其他类型的ack字符。

在发送终端接收到接收终端返回的确认收到文件类型的第二目标消息后,向接收终端发送第三数据指令at+ftp=1,totalpackets,packsize$\r\n,等待200ms的超时时间,第三数据指令包含目标文件的文件总包数和每一包的大小。同样的,若接收终端成功接收到发送终端发送的文件大小,则返回包含ack:ready$\r\n的第三目标消息,若超时则回复其他类型的ack字符。

发送终端在接收到接收终端返回的第三目标消息后,开始传输文件数据,首先向接收终端发送第一包数据,若接收终端成功收到数据包,则返回预设的确认消息。其中,确认消息也为ack字符,ack类型包括ready、busy、reject。若接收终端成功接收到发送终端发送的数据包,则返回包含ack:ready$\r\n的确认消息,若超时则回复其他类型的ack字符。每一个数据包发送完成后,发送终端会将当前已发送的数据包数量与之前获取到的文件的总包数进行比较,若已发送的数据包数量小于总包数,则继续发送下一个数据包;若已发送的数据包数量等于总包数,则停止发送数据包。

步骤104,向接收终端发送验证消息并接收接收终端响应于验证消息回传的验证结果。

具体的说,在发送终端发送完最后一个数据包并接收到接收终端返回的确认消息后,向接收终端发送验证消息at+ftp=3,filecrc$\r\n。在本实施例中,使用的文件校验方法为crc循环冗余校验,验证消息中包括crc16验证码,crc16验证码是crc循环冗余校验中的一种校验码版本,用于检验文件的完整性。发送终端预先在本地,根据获取到的完整的目标文件生成一个crc16验证码,然后将验证码发送至接收终端。接收终端首先将接收到的所有包进行解封,得到解封后的文件数据,然后通过crc方法计算得到解封后文件数据的crc16校验码,然后将解封后文件数据的crc16校验码与发送终端发送的crc16校验码进行比较,若两个校验码一致则代表接收终端接收到的文件数据是完整、没有错误的;否则代表文件不完整有错误。当接收终端接收到的文件数据完整时,向发送终端返回内容为success的验证结果;否则,向发送终端返回内容为fail的验证结果。

需要说明的是,本实施例中的上述各示例均为为方便理解进行的举例说明,并不对本发明的技术方案构成限定。上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

与现有技术相比,本实施例以at指令设计精简的文件传输协议,仅保留了文件传输的功能,实现了简化文件传输过程的目的,使得文件传输协议可以方便地在不同设备间移植,提高了不同设备间文件传输的效率。

本发明的第二实施例涉及一种文件传输方法,应用于文件接收终端,具体流程如图3所示,包括:

步骤301,在接收到发送终端发送的一个数据包后,根据预设的传输协议向发送终端返回响应于数据包的确认消息。

具体的说,预设的传输协议以at指令进行设计。

步骤302,在接收到发送终端发送的验证信息后,利用验证信息对接收到的目标文件进行验证。

步骤303,返回目标文件的验证结果。

本实施例是与本发明第一实施例中应用于文件发送终端的文件传输方法配合实施的应用于文件接收终端的文件传输方法,由于两端在文件传输过程中不断交互,因此本实施例中的文件传输方法具体的实现过程在本发明第一实施例中已经进行了具体的说明,在此不再赘述。

在实际应用中,以个人电脑pc作为文件发送端、zk105设备作为文件接收端为例,来对本发明的实施例进行具体的说明。

当用户需要利用pc向zk105发送文件,首先需要在pc以及zk105上安装以at指令设计的文件传输协议,然后将将要发送的文件封装为多个数据包;

在pc与zk105建立通讯后,首先向zk105发送第一数据指令at+ftp=0,filetype$\r\n;若接收到zk105的确认消息+ack:ready$\r\n,则继续向zk105发送第二数据指令at+ftp=1,filesize$\r\n;

若接收到zk105的确认消息+ack:ready$\r\n,则继续向zk105发送第三数据指令at+ftp=2,totalpackets,packsize$\r\n;若接收到zk105的确认消息+ack:ready$\r\n,则逐个地将数据包发送至zk105,在发送一个数据包后,首先确认zk105返回的确认消息ack:ready$\r\n,然后将当前已发送的数据包与总包数进行比较,判断是否继续发送数据包;

若已发送的包数小于总包数,则再向zk105发送下一个数据包,直至所有数据包发送完毕后,pc向zk105利用指令at+ftp=3,filecrc$\r\n发送完整文件的crc验证码。然后zk105根据crc16算法对文件的完整性进行验证,计算出接收到的文件的crc验证码,与pc发送的crc验证码进行比较,如果两个验证码一致,说明文件完整,传输成功,向pc返回success的消息。

与现有技术相比,本实施例以at指令设计精简的文件传输协议,仅保留了文件传输的功能,实现了简化文件传输过程的目的,使得文件传输协议可以方便地在不同设备间移植,提高了不同设备间文件传输的效率。

本发明第三实施例涉及一种终端,用于发送文件,如图4所示,包括:

文件获取模块401,用于获取待传输的目标文件。

具体的说,文件模块401在文件开始传输之前,需要从存储设备中读取将要传输的文件,在实际应用中,通常是从永久性的存储介质中将文件数据读取到内存结构中。获取文件数据的同时,还需要从文件数据中获取目标文件的文件类型、文件大小以及每一个数据包的大小。

数据包封装模块402,用于根据预设的目标传输协议对目标文件进行数据封装生成至少两个数据包。

具体的说,在大文件传输时,直接进行全部的数据传输非常容易发生错误,从而导致文件传输的失败,因此需要将文件以一定的大小,如1kb来进行分割为多个数据块,然后将每一个数据块封装为一个数据包,然后在文件传输时,以数据包为基本单位进行传输,以提高文件传输过程的稳定性。

在一个例子中,数据包封装模块还用于在对文件进行封装之前,分析此次文件传输是否需要用到文件的头部数据和尾部数据。如果需要文件头部和尾部,则将整个文件数据分割后进行封装;如果不需要文件头部和尾部,则将文件中的头部数据和尾部数据丢弃后将剩余的文件数据分割后进行封装。通过上述的技术手段可以提高部分情况下文件的传输效率。

数据发送模块403,用于向预设的接收终端发送数据包,或,用于向接收终端发送验证信息。

具体的说,在文件传输的过程中,数据发送模块403除了将数据包封装模块402生成的数据包进行发送,还需要在所有数据包发送完成后,将预先生成的完整的目标文件的crc16校验码发送给文件接收终端。在发送数据包时,每发送一个数据包,都要将当前已经发送的数据包数量与之前获取到的总包数进行比较,当已经发送的数据包数量与之前获取到的总包数相等时,则停止发送。

在另一个实施例中,数据发送模块403还用于发送包含文件大小、文件类型、文件总包数和每包大小的数据指令。

消息接收模块404,用于接收到接收终端回传预设确认消息,或,用于接收接收终端响应于验证信息回传的验证结果。

具体的说,在每一次发送数据包后,在超时时间内文件接收终端收到数据包后都会返回一个确认消息,用于表示已经接收到数据包。在接收终端接收到验证码后,会将所有数据包解封后进行文件完整性验证,发送终端会接收到文件接收终端返回的验证结果。

在另一个实施例中,消息接收模块404还用于接收接收终端响应于数据指令的目标消息。

不难发现,本实施例为与第一实施例相对应的装置实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

本发明第四实施例涉及一种终端,用于接收文件,如图5所示,包括:

数据接收模块501,用于接收发送终端发送的数据包,或,用于接收所述发送终端发送的验证信息。

在另一个实施例中,数据接收模块501还用于接收发送终端发送的包含文件大小、文件类型、文件总包数和每包大小的数据指令。

消息发送模块502,用于向发送终端返回响应于所述数据包的确认消息,或,用于向发送终端返回所述目标文件的验证结果。

在另一个实施例中,消息发送模块502还用于发送响应于发送终端发送的数据指令的目标消息。

文件验证模块503,用于利用所述验证信息对所述目标文件的进行验证。

具体的说,在接收到来自发送终端的crc16验证码后,将所有接收到的数据包解封,得到完整的目标文件的数据,然后利用crc方法对数据进行校验,得到接收到的文件数据的crc验证码,然后比较来自发送终端的crc16验证码与接收到的文件数据的crc验证码。一致则代表接收到的文件完整,向发送终端返回success的验证结果;否则向发送终端返回fail的验证结果。

不难发现,本实施例与本发明的第三实施例所提到的虚拟模块也可以同时存在于一个终端中,也就是说一个终端既可以起到发送文件的作用,也可以起到接收文件的作用。

本发明第五实施例涉及一种电子设备,如图6所示,包括:

至少一个处理器601;以及,与至少一个处理器601通信连接的存储器602;其中,存储器602存储有可被至少一个处理器601执行的指令,指令被至少一个处理器601执行,以使至少一个处理器601能够执行第一、或第二实施例中的文件传输方法。

其中,存储器602和处理器601采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器601和存储器602的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器601处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器601。

处理器601负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器602可以被用于存储处理器601在执行操作时所使用的数据。

本发明第六实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1