发明内容
本发明主要解决的技术问题是提供一种网络连接下载方法及装置,能够缩短连接耗时,提高传输速率。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种网络连接下载方法,所述方法包括:终端设备创建至少一个备用的预分配连接;以及在所述预分配连接被使用之前执行相应的网络初始化操作,使所述终端设备在下载文件时直接从所述至少一个预分配连接中选择下载文件所需使用的预分配连接。
其中,所述终端设备创建至少一个备用的预分配连接的步骤具体为:根据下载文件任务的连接并发数创建所述至少一个预分配连接;其中,M=N+1,M为所述预分配连接的数量,N为连接并发数的数量,且M、N均为自然数。
其中,所述方法包括:所述终端设备直接从所述至少一个预分配连接中选择所需使用的预分配连接的步骤具体为:所述终端设备根据下载文件任务的连接并发数直接从所述至少一个预分配连接中选取相应数量的所述预分配连接,以通过选取的每个所述预分配连接向服务器发送下载请求并从所述服务器获取相应数据完成一文件块的下载;其中,所述文件在所述服务器端支持断点续传下载。
其中,所述终端设备根据下载文件任务的连接并发数从所述至少一个预分配连接中选取相应数量的所述预分配连接的步骤之后,所述方法还包括:当正在使用的所述预分配连接的数量等于所述连接并发数的数量,且所述文件未完成下载时,所述终端设备根据被使用的预分配连接的数量创建数量相同的备用的预分配连接,并在所述预分配连接被使用之前再次执行相应的网络初始化操作。
其中,所述终端设备直接从所述至少一个预分配连接中选择下载文件所需使用的预分配连接的步骤之后,所述方法还包括:所述终端设备将下载完成的至少部分文件块进行组装以得到所述文件的至少部分内容;回收创建的所述至少一个预分配连接中未被使用的预分配连接。
为解决上述技术问题,本发明采用的另一个技术方案是:提供一种网络连接下载装置,所述装置包括:预分配连接创建单元,用于创建至少一个备用的预分配连接;控制单元,用于对所述预分配连接创建单元创建的所述至少一个预分配连接进行网络初始化操作,使得所述装置在下载文件时直接从所述至少一个预分配连接中选择所需使用的预分配连接,并不需再执行相应的网络初始化操作。
其中,所述预分配连接创建单元用于根据下载文件任务的连接并发数创建所述至少一个预分配连接;其中,M=N+1,M为所述预分配连接的数量,N为连接并发数的数量,且M、N均为自然数。
其中,所述装置还包括:文件下载单元,用于根据下载文件任务的连接并发数从所述预分配连接创建单元创建的至少一个预分配连接中选取相应数量的所述预分配连接,以通过选取的每个所述预分配连接向服务器发送下载请求并从所述服务器获取相应数据以完成一文件块的下载;其中,所述文件在所述服务器端支持断点续传下载。
其中,所述装置还包括:文件组合单元,用于将所述文件下载单元下载完成的至少部分文件块进行组装以得到所述文件的至少部分内容;预分配连接回收单元,用于回收所述预分配连接创建单元创建的所述至少一个预分配连接中未被使用的预分配连接。
其中,当正在使用的所述预分配连接的数量等于所述连接并发数的数量,且所述文件未完成下载时,所述预分配连接创建单元还用于根据被所述文件下载单元使用的预分配连接的数量创建数量相同的备用的预分配连接,并由所述控制单元在创建的所述预分配连接被使用之前执行相应的网络初始化操作。
本发明的有益效果是:区别于现有技术的情况,本发明提供的一种网络连接下载方法及装置,按照连接分配策略创建预分配连接,并提前完成预分配连接的网络初始化操作。当真正需要使用时,即可直接从预分配连接中取出连接向服务器发送下载文件请求并从服务器获取相应数据,以此缩短连接传输耗时,提高传输效率。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合附图和实施例对本发明进行详细说明。
首先对本发明涉及到的如下概念进行解释说明。
连接并发数,一个下载任务能够同时发起的连接数的上限值。例如,一个下载任务允许连接并发数为3,则这个下载任务在下载过程中同时只能有3个连接正在收发数据。
连接池,用于管理和存放未使用的连接。
请参阅图2,为本发明网络连接下载方法第一实施方式的流程示意。该流程图示出的一种网络连接下载方法包括如下步骤:
步骤S10,终端设备创建至少一个备用的预分配连接。
步骤S11,在该预分配连接被使用之前执行相应的网络初始化操作,使该终端设备在下载文件时直接从该至少一个预分配连接中选择下载文件所需使用的预分配连接。
其中,预分配连接为预先建立的连接,且每个连接在被选取使用时能够对应一下载任务。网络初始化操作为进行DNS查询以及根据返回IP地址建立Socket连接。
利用本发明实施方式,按照连接分配策略创建预分配连接,并提前完成预分配连接的网络初始化操作,当真正需要使用时,即可直接从预分配连接中取出连接向服务器发送下载文件请求并从服务器获取相应数据,不需要再耗费时间和资源进行网络初始化操作,以此缩短连接传输耗时,提高传输效率。
请参阅图3,为本发明网络连接下载方法第二实施方式的流程示意。该流程图示出的一种网络连接下载方法包括如下步骤:
步骤S20,终端设备创建至少一个备用的预分配连接。
具体地,该终端设备根据下载文件任务的连接并发数创建该至少一个预分配连接。其中,M=N+1,M为该预分配连接的数量,N为连接并发数的数量,且M、N均为自然数。
步骤S21,在该预分配连接被使用之前执行相应的网络初始化操作,使该终端设备在下载文件时直接从该至少一个预分配连接中选择下载文件所需使用的预分配连接,并不需再执行相应的网络初始化操作。
其中,该网络初始化操作包括对连接进行DNS查询和连接Socket。
具体地,该终端设备根据下载文件任务的连接并发数从该至少一个预分配连接中选取相应数量的预分配连接,以通过选取的每个预分配连接向服务器发送下载请求并从该服务器获取相应数据完成一文件块的下载。该所需下载的文件在该服务器端支持断点续传下载。
步骤S22,该终端设备将下载完成的至少部分文件块进行组装以得到该文件的至少部分内容。
步骤S23,回收创建的至少一个预分配连接中未被使用的预分配连接。
利用本发明实施方式,按照连接分配策略创建预分配连接,并提前完成预分配连接的网络初始化操作,当真正需要使用时,即可直接从预分配连接中取出连接向服务器发送下载文件请求并从服务器获取相应数据,不需要再耗费时间和资源进行网络初始化操作,以此缩短连接传输耗时,提高传输效率。同时,根据公式:M=N+1,能够在预分配连接传输完成与将再次创建的预分配连接进行网络初始化操作的时间内,直接选取该剩余的一个预分配连接进行下载,而避免等待,从而提高传输效率。
请参阅图4,为本发明一种网络连接下载方法第三实施方式的流程示意。该流程图示出的一种网络连接下载方法包括如下步骤:
步骤S30,终端设备与服务器建立第一连接以请求下载一文件。
步骤S31,该终端设备根据该服务器接收该请求而返回的报文数据确定该下载文件任务是否支持断点续传。若是,则进入步骤S32。否则,进入步骤S39。
步骤S32,该终端设备创建至少一个备用的预分配连接。
具体地,该终端设备根据下载文件任务的连接并发数创建至少一个预分配连接。其中,M=N+1,M为预分配连接的数量,N为连接并发数的数量,且M、N均为自然数。
步骤S33,在该预分配连接被使用之前执行相应的网络初始化操作,使该终端设备在下载文件时直接从该至少一个预分配连接中选择下载文件所需使用的预分配连接。
具体地,该终端设备根据下载文件任务的连接并发数直接从该至少一个预分配连接中选取相应数量的该预分配连接,以通过选取的每个该预分配连接向服务器发送下载请求并从该服务器获取相应数据完成一文件块的下载。该文件在该服务器端支持断点续传下载。
步骤S34,判断正在使用的预分配连接的数量是否等于该连接并发数的数量。若是,则进入步骤S35。否则,返回步骤S33。
步骤S35,该终端设备根据下载完成的文件块判断该文件是否下载完成。若是,则进入步骤S36。否则,进入步骤S38。
步骤S36,该终端设备将下载完成的至少部分文件块进行组装以得到该文件的至少部分内容。
步骤S37,回收创建的该至少一个预分配连接中未被使用的预分配连接。然后,流程结束。
步骤S38,该终端设备根据被使用的预分配连接的数量创建数量相同的备用的预分配连接,并在该预分配连接被使用之前执行相应的网络初始化操作。然后,返回步骤S33。
步骤S39,该终端设备通过该第一连接从服务器下载该文件。然后,流程结束。
其中,“该终端设备根据被使用的预分配连接的数量创建数量相同的备用的预分配连接”可以根据正在使用的预分配连接下载文件块的进度确定新建预分配连接的时间。例如,当正在使用的预分配连接下载文件块的进度超过一预定百分比(例如50%),则此时再创建数量相同的备用的预分配连接。
同时,“该预分配连接被使用之前执行相应的网络初始化操作”可以预先评估网络环境或资源的使用情况,再根据情况进行网络初始化操作。例如,当前网络环境畅通,则可以在被选取的预分配连接进行文件块下载的同时对新创建的预分配连接进行网络初始化操作。当前网络的网速较低或者资源占用较大的情况下,则优先保证被选取的预分配连接下载文件块,而暂时不对新创建的预分配连接进行网络初始化操作,或者只对新创建的预分配连接的其中一个或几个进行网络初始化操作,或者对新创建的预分配连接依次进行网络初始化操作。
请参阅图5-9,为本发明实施方式中网络连接下载方法中创建并使用连接的流程示意图。本实施方式以一个需要7次连接才能下载完成的下载任务为例,即,所需下载的文件被分成7个文件块以分别下载。假定该下载任务的连接并发数的数量为3,且支持断点续传。以下具体说明整个工作流程。
如图5所示,该终端设备与服务器建立第一连接(连接1)以请求下载此文件,阴影部分表示网络初始化的耗时,无阴影部分则表示接收数据的耗时。
如图6所示,根据本发明的网络连接下载方法,当连接1返回支持断点续传的报文数据后,根据公式:预分配连接数量=连接并发数的数量+1,确定需要建立的预分配连接的数量为4。为了描述方便,这里假定新的连接是在连接1完成文件块1下载才发起。此时,将建立的4个预分配连接2、3、4、5执行相应的网络初始化操作,其中,阴影部分分别为每个预分配连接的网络初始化的耗时。
如图7所示,当连接1完成后,并且连接2、3、4、5均已完成网络初始化操作,根据连接并发数确定可以同时发起3个新的连接。因此,从创建的4个预分配连接中选取连接2、3、4作为新的连接发起连接请求。由于连接2、3、4已经进行过网络初始化操作,因此可以直接向服务器发送下载请求并从服务器获取相应数据,从而完成文件块2、3、4的下载。
如图8所示,如上所述,连接2、3、4已经被使用,且文件尚未下载完成,因此需要再次建立的3个预分配连接6、7、8。同时,将该3个新建的预分配连接6、7、8执行相应的网络初始化操作。
如图9所示,当连接2、3、4分别完成传输后,从剩余的4个预分配连接中选取连接5、6、7作为新的连接发起连接请求。同样地,由于连接5、6、7已经进行过网络初始化操作,因此可以直接向服务器发送下载请求并从服务器获取相应数据,从而完成文件块5、6、7的下载。当连接5、6、7都完成传输后,7个文件块均被下载完成。此时,该终端设备将下载完成的文件块进行组装以得到该文件。另外,连接8未被选中使用,则回收该未被使用的连接8。
请参阅图10,为本发明网络连接下载装置第一实施方式的结构示意图。该装置40包括:
预分配连接创建单元41,用于创建至少一个备用的预分配连接。
控制单元42,用于对该预分配连接创建单元41创建的至少一个预分配连接进行网络初始化操作,使得该装置在下载文件时直接从该至少一个预分配连接中选择所需使用的预分配连接,并不需再执行相应的网络初始化操作。
请参阅图11,为本发明一种网络连接下载装置第二实施方式的结构示意图。该装置50包括:
预分配连接创建单元51,用于创建至少一个备用的预分配连接。
具体地,该预分配连接创建单元51根据下载文件任务的连接并发数创建该备用的预分配连接。其中,M=N+1,M为预分配连接的数量,N为连接并发数的数量,且M、N均为自然数。
控制单元52,用于对该预分配连接创建单元51创建的至少一个预分配连接进行网络初始化操作,使得该装置在下载文件时直接从该至少一个预分配连接中选择所需使用的预分配连接。
其中,该网络初始化操作包括对连接进行DNS查询和连接SOCKET。
文件下载单元53,用于根据下载文件任务的连接并发数从该预分配连接创建单元51创建的至少一个预分配连接中选取相应数量的预分配连接,以通过选取的每个预分配连接向服务器发送下载请求并从该服务器获取相应数据以完成一文件块的下载。其中,该文件在该服务器端支持断点续传下载。
文件组合单元54,用于将该文件下载单元53下载完成的至少部分文件块进行组装以得到该文件的至少部分内容。
预分配连接回收单元55,用于回收该预分配连接创建单元51创建的至少一个预分配连接中未被使用的预分配连接。
进一步地,该装置50还包括:
连接使用判断单元56,用于判断被该文件下载单元53选取的预分配连接的数量是否等于连接并发数的数量。
文件下载判断单元57,用于当该连接使用判断单元56确定该文件下载单元53选取的预分配连接的数量等于连接并发数的数量时根据该文件下载单元53下载完成的文件块判断该文件是否下载完成。若是,该文件下载判断单元57向该文件组合单元54发出第一控制信号,所述文件组合单元54响应该第一控制信号将该文件下载单元53下载完成的至少部分文件块进行组装以得到该文件的至少部分内容。否则,该文件下载判断单元57向该预分配连接创建单元51发出第二控制信号,所述预分配连接创建单元51响应该第二控制信号根据被该文件下载单元53使用的预分配连接的数量创建数量相同的备用的预分配连接,并由控制单元52在该预分配连接被使用之前执行相应的网络初始化操作。
本发明提供的一种网络连接下载方法及装置,按照连接分配策略创建预分配连接,并提前完成预分配连接的网络初始化操作。当真正需要使用时,即可直接从预分配连接中取出连接向服务器发送下载文件请求并从服务器获取相应数据,以此缩短连接传输耗时,提高传输效率。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。