一种文件传输方法和装置的制造方法
【技术领域】
[0001 ]本发明涉及通信技术领域,特别是涉及一种文件传输方法和装置。
【背景技术】
[0002]两个设备之间进行文件传输,例如一个设备发送一张图片、或者一段广告视频,或者是一个控制信息到另一个设备,不同的文件要求的发送时机也就是优先级有所不同,一般是按照优先级由高到低的顺序确定传输次序。
[0003]在传输过程中发现比当前传输的文件具有更高优先级的文件时,需要调整传输次序,通常的做法是等待当前传输的文件传输完毕后,再传输具有更高优先级的文件,例如,文件1-5的优先级从高到低排列,按照此顺序进行传输,若在传输文件3时有比文件3的优先级更高的文件6需要传输,此时会先等文件3全部传输完后,再按照文件6、文件4、文件5的顺序传输,这样导致优先级实时响应不够迅速,特别是当当前传输的文件过大时,使得更高优先级的文件不能得到及时处理。但若只是简单的为了保障实时响应速度而放弃正在传输的文件,转而优先传输具有更高优先级的文件,又会使得总的传输时间增加,例如大小为1Mbytes的当前传输的文件X已传输了 9Mbytes,这时有更高优先级的文件Y需要传输,若立即执行文件Y的传输过程,则在其传输完毕后,文件X仍需要重新传输,相当于增加了总的传输时间。
【发明内容】
[0004]本发明提供了一种文件传输方法和装置,以解决在保证优先级实时响应速度的情况下,不影响总的传输时间的问题。
[0005]为了解决上述问题,本发明公开了一种文件传输方法,包括以下步骤:
获取至少一个待传输文件;
将所述待传输文件拆分为至少一个子文件,每个子文件携带有与其对应的待传输文件相同的优先级;
按照优先级由高到低的顺序传输子文件;若新获取的待传输文件的优先级比当前传输的待传输文件的优先级高,则暂停当前待传输文件的传输过程,记录所述当前待传输文件中已传输的子文件;并按照新的优先级顺序传输子文件;
当所有比所述当前待传输文件具有更高优先级的子文件全部传输完毕后,将所述当前待传输文件中未传输的子文件继续进行传输。
[0006]与现有技术相比,本发明包括以下优点:
本发明中获取待传输文件后,将待传输文件拆分为至少一个子文件,每个子文件携带有与其对应的待传输文件相同的优先级,按照优先级由高到低的顺序传输子文件,在传输过程中若存在新获取的待传输文件的优先级比当前传输的子文件的优先级高,则暂停当前待传输文件的传输过程,并记录所述当前待传输文件中已传输的子文件;然后按照新的优先级顺序传输子文件,这样在文件的传输过程中能够做到实时选择更高优先级的文件来优先传递。当具有更高优先级的子文件传输完毕后,恢复原来未传输完毕的传输过程,即将原来的当前待传输文件中未传输的子文件继续进行传输。相对于现有技术,即使当前待传输文件很大,也能及时响应更高优先级文件的传输过程,并且,不论当前待传输文件已传输了多少,在更高优先级文件传输完后都能进行恢复,避免增加总的传输时间。
【附图说明】
[0007]
图1是本发明实施例的两个设备之间传输文件的示意图;
图2是本发明一实施例的文件传输方法的步骤示意图;
图3是本发明一实施例的待传输文件添加文件头信息的示意图;
图4是本发明一实施例的待传输文件拆分成N个子文件的示意图;
图5是本发明另一实施例的文件传输方法的步骤示意图;
图6是本发明另一实施例的文件传输装置的发送端结构示意图;
图7是本发明另一实施例的文件传输装置的接收端结构示意图。
【具体实施方式】
[0008]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0009]本发明涉及两个设备之间传输文件,本发明所指的设备可以是包括手机、个人电脑、电视、平板等能够实现通信连接的设备,也可以是设备中的两个模块。如图1所示,示出了本发明两个设备之间传输文件的示意图,标识11描述了文件传输的方向,其中实线段表示从设备A发送到设备B,虚线段表示从设备B发送到设备A,标识12描述了根据文件传输方向而确定的设备角色,当文件从设备A发送到设备B时,设备A作为发送端,设备B作为接收端;当文件从设备B发送到设备A时,设备B作为发送端,设备A作为接收端。无论是设备A还是设备B,在实际的应用中都可能作为主动发送文件的一方,也可以作为被动接收文件数据的一方。在下面的描述中,发送文件的设备也被称为发送端,接收文件的设备也被称为接收端。
[0010]实施例一:
参照图2,示出了本发明实施例一的一种文件传输方法,该方法具体可以包括以下步骤:
步骤201,获取至少一个待传输文件。
[0011]本发明实施例中,待传输文件包括文字、图片、视频、或控制信息。对于每一个确定的文件,如果要从设备A传到设备B,应用者要在发送之前预先设置好待传输文件的优先级属性,为此本发明提出文件头信息的概念,依靠文件头信息来标识该待传输文件的相关属性,包括待传输文件大小及优先级信息,通过这个文件头信息,使得设置好的优先级能被通知到下一层的拆分单元(下面会详细说明)。待传输文件添加文件头信息的示意图如图3所示。可以看到待传输文件的数据保持不变,仅仅在待传输文件的起始位置,附加上额外的描述文件大小和文件优先级的字段,此外还可以包括文件是否需要校验等信息。
[0012]具体地,对优先级的设定,可以根据使用者的实际需求,预设I?PCP> I)个级另Ij,设定I对应的优先级最高,而数值越大,其优先级越低。
[0013]步骤202,将所述待传输文件拆分为至少一个子文件,每个子文件携带有与其对应的待传输文件相同的优先级。
[0014]为方便拆分,设定子文件的最大传输大小M,最大传输大小M相当于一个数据单位,对于每一个待传输文件,都基于这个数据单位对文件进行重新划分。每一个基于数据单位生成的新的数据称之为子文件。
[0015]假设待传输文件大小为K,对Κ/M进行向上取整得到待传输文件分割为子文件的个数N。具体地,如果K能够被M整除,则η = Κ/Μ;如果K不能被M整除,则η = Κ/Μ + 1,最后一个子文件的大小由整个待传输文件大小除以子文件的最大传输大小的余数来决定。
[0016]最大传输大小M的数值可以依据平台实际的性能来确定,在实际操作过程中,结合预期待传输文件的大小,以及测试设定不同数值对传输速度的影响,本实施例采用IMbytes,但并不限定,也可以米用64Kbytes,256Kbytes,512Kbytes,2Mbytes 等数值。
[0017]为了使得每一个子文件都能够携带优先级的信息,此时需要对子文件附加上额外的子文件头信息,包括对应的待传输文件的标识、子文件的个数、子文件的序号,及子文件的优先级信息,如图4,示出了待传输文件拆分成N个子文件的示意图。图中,子文件I的子文件头信息中的待传输文件的标识,用于表示子文件I是由哪个待传输文件拆分而来。子文件的个数用于表示传输文件拆分为子文件的总个数N,子文件的序号用于表示子文件I处于子文件序列中的第几个,子文件I的优先级信息继承待传输文件的优先级。
[0018]步骤203,按照优先级由高到低的顺序传输子文件;若新获取的待传输文件的优先级比当前传输的待传输文件的优先级高,则暂停当前待传输文件的传输过程,记录所述当前待传输文件中已传输的子文件;并按照新的优先级顺序传输子文件。
[0019]举例来说,步骤201中获取了3个待传输文件D1、D2、D3。优先级按照从高到低排序:
02、01、03。步骤202中,待传输文件01拆分为2个子文件211、212,待传输文件02拆分为2个子文件Z21、Z22,待传输文件D3拆分为4个子文件Z31、Z32、Z33、Z34。那么,按照优先级由高到低的顺序传输子文件,其顺序为:221、222、211、212、231、232、233、234。此处定义待传输文件的传输过程为将该待传输文件对应的子文件全部传输完毕的过程,对于待传输文件D3,只有将子文件Z31、Z32、Z33、Z34都发送出去,待传输文