一种下载网络流数据的方法及装置.pdf

上传人:a2 文档编号:629680 上传时间:2018-02-28 格式:PDF 页数:18 大小:1.30MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410396103.4

申请日:

2014.08.12

公开号:

CN104166567A

公开日:

2014.11.26

当前法律状态:

实审

有效性:

审中

法律详情:

著录事项变更IPC(主分类):G06F 9/445变更事项:申请人变更前:广州金山网络科技有限公司变更后:广州猎豹网络科技有限公司变更事项:地址变更前:510623 广东省广州市天河区珠江东路30号广州银行大厦第六层01-B单元变更后:510623 广东省广州市天河区珠江东路30号广州银行大厦第六层01-B单元|||实质审查的生效IPC(主分类):G06F 9/445申请日:20140812|||公开

IPC分类号:

G06F9/445

主分类号:

G06F9/445

申请人:

广州金山网络科技有限公司

发明人:

徐初标

地址:

510623 广东省广州市天河区珠江东路30号广州银行大厦第六层01-B单元

优先权:

专利代理机构:

北京市广友专利事务所有限责任公司 11237

代理人:

祁献民

PDF下载: PDF下载
内容摘要

本发明的实施例公开一种下载网络流数据的方法及装置。下载网络流数据的方法包括:电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,将缓冲区中缓存的网络流数据写入本地文件。应用本发明,可以有效降低操作系统资源消耗、提升网络流数据下载速度。

权利要求书

1.  一种下载网络流数据的方法,其特征在于,该方法包括:
电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据,并缓存至预先设置的缓存区中;
判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;
如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;
将缓冲区中缓存的网络流数据写入本地文件。

2.
  根据权利要求1所述的方法,其特征在于,所述电子设备与网络服务器建立网络连接包括:
电子设备与网络服务器建立套接字连接;
电子设备通过套接字连接向网络服务器发送建立网络连接的HTTP请求,以使网络服务器根据接收的HTTP请求中携带的待下载网络流数据名称信息,获取待下载网络流数据名称信息对应的文件属性表信息;
接收网络服务器返回的包含待下载网络流数据的文件属性表信息的HTTP请求响应,构建网络连接。

3.
  根据权利要求2所述的方法,其特征在于,所述文件属性表信息包括:文件校验算法以及下载路径信息,所述从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括:
电子设备从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,依据校验结果生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为所述下载路径信息下的待下载文件;
解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息,采用预先设置的文件校验算法,对解析的网络流数据进行校验,依据校验结果生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,将解析得到的网络流数据进行缓存。

4.
  根据权利要求3所述的方法,其特征在于,所述文件属性表信息还包括: 采用前向错误纠正信息,所述方法进一步包括:
如果文件校验第一摘要信息与文件校验第二摘要信息不相同,采用前向错误纠正对解析的网络流数据进行纠错,利用预先设置的文件校验算法,对进行纠错后的网络流数据进行校验,依据校验结果生成文件校验第三摘要信息,
如果文件校验第一摘要信息与文件校验第三摘要信息相同,将进行纠错后的网络流数据进行缓存,
如果不相同,重新从网络服务器读取待下载文件。

5.
  根据权利要求2所述的方法,其特征在于,所述文件属性表信息包括:文件校验算法、文件分割信息、文件片信息以及采用前向错误纠正信息,所述文件片信息包括:文件片对应的下载地址,所述从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括:
电子设备依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读取待下载文件片包,所述待下载文件片包为网络服务器依据文件分割信息,将待下载的网络流数据分割为多个文件片,并采用预先设置的文件校验算法,对每一文件片进行校验,依据每一文件片校验结果生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为所述文件片对应的下载地址中的待下载文件片包;
解析读取的待下载文件片包,得到文件片以及该文件片对应的文件片第一摘要信息,采用预先设置的文件校验算法,对解析的文件片进行校验,依据校验结果生成文件片第二摘要信息;
判断文件片第一摘要信息与文件片第二摘要信息是否相同,如果相同,将解析得到的文件片进行缓存;
如果不相同,采用前向错误纠正对解析的文件片进行纠错,利用预先设置的文件校验算法,对进行纠错后的文件片进行校验,依据校验结果生成文件片第三摘要信息,如果文件片第一摘要信息与文件片第三摘要信息相同,将进行纠错后的文件片进行缓存,如果不相同,重新从网络服务器读取待下载文件片包。

6.
  根据权利要求5所述的方法,其特征在于,在将文件片或进行纠错后的 文件片进行缓存后,所述方法进一步包括:
记录文件片中的帧序列编号,并在向网络服务器返回的反馈信息中,携带记录的帧序列编号,以使网络服务器接收反馈信息,查询该帧序列编号对应的文件片是否已传输完毕,如果是,从未传输的文件片中,选取相应的文件片中数据帧进行传输,如果否,从该帧序列编号对应的文件片中,选取未传输的数据帧进行传输。

7.
  根据权利要求5所述的方法,其特征在于,在所述将缓冲区中缓存的网络流数据写入本地文件后,该方法进一步包括:
根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。

8.
  根据权利要求1所述的方法,其特征在于,在所述缓存至预先设置的缓存区中之后,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值之前,所述方法进一步包括:
判断所述待下载的网络流数据是否下载完毕,如果未下载完毕,执行所述判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值的流程;如果下载完毕,执行所述将缓冲区中缓存的网络流数据写入本地文件的流程。

9.
  根据权利要求1所述的方法,其特征在于,所述判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值包括:
设置缓冲区缓存容量累计器,并初始化缓存容量累计器;
在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;
读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值。

10.
  根据权利要求9所述的方法,其特征在于,在所述将缓冲区中缓存的网络流数据写入本地文件后,所述方法进一步包括:
清空缓冲区中缓存的网络流数据,并对缓存容量累计器进行清零处理。

11.
  一种下载网络流数据的装置,其特征在于,该装置包括:下载模块、 判断模块以及文件写入模块,其中,
下载模块,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;
判断模块,用于判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,在缓冲区中缓存的网络流数据大小小于预先设置的网络流数据阈值的情况下,通知下载模块继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,通知文件写入模块;
文件写入模块,用于将缓冲区中缓存的网络流数据写入本地文件。

12.
  根据权利要求11所述的装置,其特征在于,所述下载模块包括:网络连接单元、读取单元、解析单元、校验单元以及缓冲区单元,其中,
网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;
读取单元,用于从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,依据校验结果生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;
解析单元,用于解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息;
校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,依据校验结果生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;
缓冲区单元,用于将接收的网络流数据进行缓存。

13.
  根据权利要求12所述的装置,其特征在于,所述下载模块进一步包括:纠错单元,
校验单元进一步用于在文件校验第一摘要信息与文件校验第二摘要信息不 相同的情况下,将解析得到的网络流数据输出至纠错单元;
纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元。

14.
  根据权利要求11所述的装置,其特征在于,所述下载模块包括:网络连接单元、多线程读取单元、解析单元、校验单元、纠错单元以及缓冲区单元,其中,
网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;
多线程读取单元,用于依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读取待下载文件片包,所述待下载文件片包为网络服务器将待下载的网络流数据分割为多个文件片,采用预先设置的文件校验算法,对每一文件片进行校验,依据每一文件片的校验结果生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为待下载文件片包;
解析单元,用于解析读取的待下载文件片包,得到网络流数据以及文件片第一摘要信息;
校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,依据校验结果生成文件片第二摘要信息,如果文件片第一摘要信息与文件片第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;如果文件片第一摘要信息与文件片第二摘要信息不相同,将解析得到的网络流数据输出至纠错单元;
纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元;
缓冲区单元,用于将接收的网络流数据进行缓存。

15.
  根据权利要求14所述的装置,其特征在于,进一步包括:
组合模块,用于在确定缓冲区中缓存的网络流数据为文件片后,根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片 组合成文件。

16.
  根据权利要求12至15任一项所述的装置,其特征在于,所述下载模块进一步包括:
下载状态判断单元,用于判断缓冲区单元缓存的网络流数据是否下载完毕,如果未下载完毕,通知判断模块,如果已下载完毕,通知文件写入模块。

17.
  根据权利要求11所述的装置,其特征在于,所述判断模块包括:缓存容量累计器、累加单元以及判断单元,其中,
缓存容量累计器,用于在下载启动时或将缓冲区中缓存的网络流数据写入本地文件中后,进行清零处理;
累加单元,用于在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;
判断单元,用于读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值,如果是,通知下载模块继续从网络服务器读取网络流数据并写入到所述缓冲区中;如果不小于,通知文件写入模块。

18.
  根据权利要求17所述的装置,其特征在于,进一步包括:
清空处理模块,用于在监测到缓冲区中缓存的网络流数据写入本地文件后,清空缓冲区中缓存的网络流数据,并通知用于累计网络流数据容量的缓存容量累计器进行清零处理。

说明书

一种下载网络流数据的方法及装置
技术领域
本发明涉及数据下载技术,尤其涉及一种下载网络流数据的方法及装置。
背景技术
随着通信技术,尤其是移动3G、4G通信技术的发展,电子设备,例如,移动电话、个人数字助理、掌上电脑以及台式机电脑的功能越来越强大,电子设备通过采用开放式的操作系统,可装载相应的应用程序来实现相应的应用功能,成为集通话、短信、网络接入、影视娱乐、网络即时通信、网银支付、网络游戏、地图导航为一体的综合性终端设备,是用户生活、工作、休闲、娱乐的重要载体。由于电子设备上运行的应用功能(应用程序)数量越来越多,因而,如何快速地从相关运营商或网络服务器下载相关应用功能对应的应用软件或其它网络流数据,成为运营商和用户关注的技术焦点。对于用户来说,电子设备提供的数据下载速度越高,越能提升用户的应用体验;而对于运营商来说,提升电子设备的下载速度,可以留存以及吸引更多的用户,有利于提升市场应用分发的份额,从而提升运营商的盈利。
目前的电子设备,以基于安卓(Android)操作系统平台的电子设备进行下载为例,采用超文本传输协议(HTTP,Hypertext Transfer Protocol)下载,在电子设备与网络服务器建立连接之后,从网络服务器获取所需下载的网络流数据,并将网络服务器传输的网络流数据存放到电子设备本地中预先设置的固定大小的缓冲(Buffer)区中,然后,实时将缓冲区中存放的网络流数据写入电子设备预先指定的本地文件中,从而完成一次输入/输出(I/O,Input/Output)操作。其中,网络流也称之为应用程序编程接口(API,ApplicatI/On Programming Interface),是一些预先定义的函数,目的是提供应用程序与开发人员基于应用软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节;Buffer指的是Java里面的缓冲区,是特定基本类型元素的线性有限序列,通过适当通道的I/O操作,可以将网络流数据传输到缓冲区,以及将网络流数据从缓冲区传出;I/O操作是指计算机在运行时,CPU、寄存器、内存、外 围设备协同一起工作,包括寄存器、内存和外围设备的通信,例如,读文件,是将磁盘文件中的网络流数据(数据)读到内存,写文件则是将数据从内存中读出并写入到磁盘文件中。此外,I/O操作还还包括一些套接字(socket)函数的操作,是内存和网卡之间的数据通信。对于电子设备来说,I/O操作速度较慢,耗时较多。
由上述可见,现有的电子设备下载网络流数据的方法,采用HTTP下载方式,通过I/O操作,从网络服务器获取所需下载的网络流数据,并存放到电子设备的缓冲区中,然后,实时将缓冲区中中存放的网络流数据写入电子设备的本地文件中。而实际应用中,由于网络连接的不稳定性,使得一次从网络服务器获取(读取)的网络流数据可能不能将缓冲区存放满,有时,甚至不足缓冲区的十分之一,而对于缓冲区不满的网络流数据,也需要实时进行一次本地文件的I/O操作,以将缓冲区中存放的网络流数据写入到本地文件,并在执行完该I/O操作后,才能继续从网络服务器读取网络流数据执行下一次I/O操作。这样,缓冲区中很少的一点网络流数据,需要进行一次本地文件的I/O操作,由于I/O操作速度较慢,耗时较多,使得网络流数据下载速度不高,并消耗了较多的操作系统资源,降低了操作系统性能。
发明内容
有鉴于此,本发明实施例提供一种下载网络流数据的方法及装置,能够有效降低操作系统资源消耗、提升网络流数据下载速度。
为达到上述目的,本发明的实施例采用如下技术方案:
一方面,本发明实施例提供一种下载网络流数据的方法,包括:
电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据,并缓存至预先设置的缓存区中;
判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;
如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;
将缓冲区中缓存的网络流数据写入本地文件。
本发明实施例提供的下载网络流数据的方法,通过对缓冲区中缓存的网络流数据大小进行限制,从而控制写入本地文件中网络流数据的写入频率。当一次读取的网络流数据较少时,不产生将缓存的网络流数据写入本地文件中的I/O操作,继续读取网络流数据,从而减少I/O操作,能够有效降低操作系统资源消耗、提升网络流数据下载速度。
另一方面,本发明实施例提供一种下载网络流数据的装置,包括:下载模块、判断模块以及文件写入模块,其中,
下载模块,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;
判断模块,用于判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,在缓冲区中缓存的网络流数据大小小于预先设置的网络流数据阈值的情况下,通知下载模块继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,通知文件写入模块;
文件写入模块,用于将缓冲区中缓存的网络流数据写入本地文件。
本发明实施例提供的下载网络流数据的装置,下载模块读取待下载的网络流数据并缓存,判断模块通过检测缓存的网络流数据大小是否小于网络流数据阈值,如果小于,则暂缓将缓冲区中的网络流数据写入电子设备的本地文件中,而是通知下载模块继续从网络服务器读取网络流数据,如果不小于,才通知文件写入模块将缓存的数据写入本地文件,无需实时进行本地文件的I/O操作,降低了网络流数据下载所需的I/O操作次数,能够有效降低操作系统资源消耗、提升网络流数据下载速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例下载网络流数据的方法流程示意图;
图2为本发明实施例下载网络流数据的方法具体流程示意图;
图3为本发明实施例下载网络流数据的装置结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例下载网络流数据的方法流程示意图。参见图1,该方法包括:
步骤101,电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据,并缓存至预先设置的缓存区中;
步骤102,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;
本步骤中,预先设置的缓冲区用于存放网络服务器传输的网络流数据,即从网络服务器读取的网络流数据。
本发明实施例中,网络流数据阈值可根据实际需要进行设置,例如,对于固定容量大小的缓冲区,网络流数据阈值可以为一定值,而对于容量大小可变的缓冲区,网络流数据阈值可以为该缓冲区容量的一百分比。当然,实际应用中,定值的网络流数据阈值也可以认为是该缓冲区容量的一固定百分比,因而,网络流数据阈值可以包括:网络流数据容量阈值以及缓冲区容量百分比阈值,其中,
网络流数据容量阈值为一定值,本发明实施例中,只要小于缓冲区容量即可。例如,对于设置的用于缓存下载的网络流数据的缓冲区,如果缓冲区容量为100M,则网络流数据容量阈值可以设置为30M、60M或90M等。
缓冲区容量百分比阈值可设置为缓冲区容量的一百分比,例如,缓冲区容 量百分比阈值为设置为30%、50%、80%等。
步骤103,如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;
本步骤中,当缓冲区中缓存的网络流数据大小小于网络流数据阈值时,无需实时将缓冲区中存放的网络流数据写入电子设备的本地文件中,而是继续从网络服务器读取网络流数据。
步骤104,将缓冲区中缓存的网络流数据写入本地文件。
本步骤中,在缓冲区中写入的网络流数据大于所述网络流数据阈值后,将缓冲区中缓存的网络流数据写入本地文件。
本发明实施例中,电子设备通过检测每一次从网络服务器读取的网络流数据大小是否小于预先设置的网络流数据阈值,如果小于,则暂缓将缓冲区中的网络流数据写入电子设备的本地文件中,而是继续从网络服务器读取网络流数据,并继续添加到缓冲区,直到缓冲区中缓存的网络流数据大于网络流数据阈值,才写入本地文件。这样,在网络连接不稳定性,一次从网络服务器读取的网络流数据大小不满足网络流数据阈值的情况下,无需实时进行一次本地文件的I/O操作,而是继续从网络服务器读取网络流数据,直至缓冲区中缓存的网络流数据大小大于网络流数据阈值后,将缓冲区中缓存的网络流数据写入电子设备的本地文件中,从而完成一次I/O操作,由于有效降低了网络流数据下载的I/O操作次数,节约了操作系统资源,提升了操作系统性能,从而有效提高网络流数据的下载速度。
图2为本发明实施例下载网络流数据的方法具体流程示意图。参见图2,该方法包括:
步骤201,电子设备与网络服务器建立网络连接;
本步骤中,较佳地,采用超文本传输协议(HTTP,Hypertext Transfer Protocol)建立网络连接。当然,实际应用中,也可以采用安全超文本传输协议(HTTPS,Secure Hypertext Transfer Protocol)或文件传输协议(FTP,File Transfer Protocol)等建立网络连接。
本发明实施例中,电子设备与网络服务器建立网络连接具体包括:
A11,电子设备与网络服务器建立套接字(socket)连接;
本步骤中,通过IP地址和端口号建立套接字连接。
A12,电子设备通过套接字连接向网络服务器发送建立网络连接的HTTP请求;
本步骤中,HTTP请求可以是GET命令,也可以是POST命令,以GET命令为例,GET命令的格式可以为:
GET路径/文件名HTTP/1。
其中,
文件名为待访问的文件,即待下载网络流数据对应的文件名,也就是待下载网络流数据名称信息;
HTTP/1为电子设备的Web浏览器使用的HTTP版本。
A13,网络服务器接收HTTP请求,进行事务处理,向电子设备返回HTTP请求响应,构建网络连接。
本步骤中,事务处理为网络服务器根据接收的HTTP请求中携带的待下载网络流数据名称信息,获取待下载网络流数据名称信息对应的文件属性表信息。
网络服务器接收HTTP请求后,进行事务处理,处理结果通过HTTP请求响应传回给电子设备,从而在电子设备的Web浏览器上显示出待下载网络流数据所在的页面。例如,电子设备与网络服务器(www.mycompany.com:8080)建立套接字连接后,发送GET命令:GET/rsmain.exe HTTP/1.0,表示需要从网络服务器下载文件名为rsmain.exe的可执行文件(网络流数据)。主机名为www.mycompany.com的网络服务器在自身的存储空间中搜索rsmain.exe的可执行文件。如果找到该文件,则将该文件的文件属性表信息封装在HTTP请求响应中,传送给电子设备。
本发明实施例中,文件属性表信息可以包括:待下载网络流数据名称(文件名)、下载路径信息以及待下载网络流数据大小。
进一步地,为了保障待下载网络流数据在下载过程中的准确性,还可以包括文件校验算法、是否采用前向错误纠正(FEC,Forward Error Correction)、生 命周期信息等。其中,文件校验算法用于在网络服务器端,对待传输的网络流数据进行文件校验,依据校验结果生成文件校验第一摘要信息(较佳地,直接将校验结果作为文件校验第一摘要信息),以及,在电子设备端,对接收的网络流数据进行文件校验,并将校验结果作为文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,表明网络流数据传输正确;如果文件校验第一摘要信息与文件校验第二摘要信息不相同,表明网络流数据传输不正确。是否采用前向错误纠正是在文件校验第一摘要信息与文件校验第二摘要信息不相同的情况下,是否需要对接收的网络流数据进行进行前向错误纠正,以恢复正确的网络流数据。生命周期信息为待下载网络流数据设置生命周期,在设置的生命周期内,用户可以进行下载,而在设置的生命周期到时,将该待下载网络流数据进行清除或不允许用户下载。
本发明实施例中,文件校验算法包括:CRC32校验算法、安全哈希算法、信息摘要算法5等。
实际应用中,为了提高电子设备的下载速度,可以设置电子设备采用并行下载的方式进行网络流数据下载。因而,较佳地,为了适应并行下载的需求,网络服务器还可以将待下载的网络流数据(文件)分割为等长或不等长的文件片,并记录文件的分割信息,这样,文件属性表信息可以进一步包括:文件分割信息以及文件片信息,其中,
文件分割信息为待下载的网络流数据分割的文件片数量;
文件片信息包括:文件片大小以及文件片对应的下载地址,其中,每一文件片或多个文件片可以对应一下载地址,电子设备可以根据每个文件片的下载地址并行下载相应的文件片。这样,通过为文件片设置下载地址,使得电子设备可以依据各文件片对应的下载地址进行相应下载,从而实现并行下载。
当然,实际应用中,为了保障网络服务器传输网络数据流的准确性,还可以对文件片中的数据进行帧序列编号,每一文件片包括多个帧序列编号,例如,包括的帧序列编号可以是八位二进制符号表示的0~254。
步骤202,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;
本步骤中,电子设备根据文件属性表信息中的下载路径信息,从网络服务器读取相应的待下载的网络流数据。
如前所述,为了保障网络流数据在传输过程中的可靠性和准确性,网络服务器在下发网络流数据时,可以采用预先设置的文件校验算法,对传输的网络流数据进行校验。因而,作为一可选实施例,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括:
网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;
本步骤中,当前待下载的网络流数据为网络服务器一次传输的数据,经过多次传输,可以将用户所需下载的网络流数据传输完毕。
电子设备从网络服务器读取待下载文件,解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息,采用预先设置的文件校验算法,对解析的网络流数据进行校验,生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,将解析得到的网络流数据进行缓存。
本发明实施例中,对于文件校验第一摘要信息与文件校验第二摘要信息不相同的情况,该方法进一步包括:
采用前向错误纠正对解析的网络流数据进行纠错,利用预先设置的文件校验算法,对进行纠错后的网络流数据进行校验,生成文件校验第三摘要信息,如果文件校验第一摘要信息与文件校验第三摘要信息相同,将进行纠错后的网络流数据进行缓存,如果不相同,重新从网络服务器读取待下载文件。
作为另一可选实施例,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括:
网络服务器将待下载的网络流数据分割为多个文件片;
采用预先设置的文件校验算法,对每一文件片进行校验,生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为待下载文件片包;
本步骤中,利用文件校验算法对文件片进行校验,生成文件片第一摘要信 息,每一文件片对应一文件片第一摘要信息。
电子设备依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读取待下载文件片包,解析读取的待下载文件片包,得到文件片以及该文件片对应的文件片第一摘要信息,采用预先设置的文件校验算法,对解析的文件片进行校验,生成文件片第二摘要信息;
判断文件片第一摘要信息与文件片第二摘要信息是否相同,如果相同,将解析得到的文件片进行缓存;
如果不相同,采用前向错误纠正对解析的文件片进行纠错,利用预先设置的文件校验算法,对进行纠错后的文件片进行校验,生成文件片第三摘要信息,如果文件片第一摘要信息与文件片第三摘要信息相同,将进行纠错后的文件片进行缓存,如果不相同,重新从网络服务器读取待下载文件片包。
本发明实施例中,对于并行下载以及文件片中的数据进行帧序列编号的情形,电子设备可以不严格按照帧序列编号进行接收,电子设备在获取文件属性表信息后,可以根据获取的文件属性表信息预知文件的重构结构、每一文件片在文件中的起始位置以及长度。因而,电子设备可以根据自身的资源状态,选择支持文件片的乱序接收,或者按照帧序列编号依序接收。对于乱序接收,在将文件片或进行纠错后的文件片进行缓存后,该方法还可以进一步包括:
记录文件片中的帧序列编号,并在向网络服务器返回的反馈信息中,携带记录的帧序列编号;
网络服务器接收反馈信息,查询该帧序列编号对应的文件片是否已传输完毕,如果是,从未传输的文件片中,选取相应的文件片中数据帧进行传输,如果否,从该帧序列编号对应的文件片中,选取未传输的数据帧进行传输。
当然,实际应用中,网络服务器在传输文件片后,还可以启动定时器,如果在预先设置的定时时间内没有接收到该文件片的反馈信息,则启动重传。
进一步地,为了节约电子设备用于下载的资源,提升资源利用效率,降低网络流数据下载所需的时间,该方法还可以进一步包括:
在网络流数据传输中断后,按照预先设置的间隔周期向网络服务器发送网络连接请求,如果在预先设置的连接时间阈值内没有接收到网络服务器的网络 连接请求响应,确定网络连接异常,终止下载;如果接收到网络连接请求响应,则将记录的传输中断处的文件片的帧序列编号发送至网络服务器,网络服务器根据接收的文件片的帧序列编号判断下载是否完成,如果未完成,从接收的帧序列编号开始进行传输,如果完成,则结束下载,从而实现断点续传。
本步骤中,在下载过程中,如果出现断网情况,电子设备记录当前下载的文件片的帧序列编号,在网络重新恢复连接时,根据记录的文件片的帧序列编号向网络服务器发送下载请求,继续进行网络流数据下载,直至下载完该网络流数据对应的所有文件片。
步骤203,判断网络流数据是否下载完毕,如果未下载完毕,执行步骤204,如果下载完毕,执行步骤206;
本步骤中,判断网络流数据是否下载完毕可依据待下载的网络流数据大小以及缓存容量累计器中累计的网络流数据容量和本地文件中写入的该次下载对应的网络流数据大小来确定,即如果缓存容量累计器中累计的网络流数据容量和本地文件中写入的该次下载对应的网络流数据大小之和等于待下载的网络流数据大小,确定网络流数据下载完毕。
步骤204,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,如果是,执行步骤205,否则,执行步骤207;
本步骤中,作为可选实施例,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值包括:
设置缓冲区缓存容量累计器,并初始化缓存容量累计器;
本步骤中,在下载启动时或将缓冲区中缓存的网络流数据写入本地文件中后,对缓存容量累计器进行清零。
在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;
读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值。
本步骤中,可以在每一次缓存文件片(网络流数据)或多次缓存文件片后,相应读取缓存容量累计器中累计的网络流数据容量。
步骤205,继续从网络服务器读取网络流数据并写入到所述缓冲区中,返回执行步骤203;
步骤206,将缓冲区中缓存的网络流数据写入本地文件;
步骤207,将缓冲区中缓存的网络流数据写入本地文件,返回执行步骤205。
本发明实施例中,作为一可选实施例,在确定将缓冲区中缓存的网络流数据写入本地文件后,该方法可以进一步包括:
步骤208,清空缓冲区中缓存的网络流数据,并对缓存容量累计器进行清零处理。
作为另一可选实施例,对于依据文件片进行下载的情形,在将缓冲区中缓存的网络流数据写入本地文件后,该方法进一步包括:
步骤209,根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。
本发明实施例中,采用HTTP建立下载连接,然后读取网络流数据,添加到缓冲区中后,首先检测待下载的网络流数据(文件)是否读取完毕,如果读取完毕,则写入本地文件,结束下载;如果待下载文件没有读取完毕,则检测缓冲区中存放的网络流数据的大小是否大于网络流数据阈值,例如,缓冲区容量的三分之一,如果大于或等于,则写入本地文件,清空缓冲区,并继续读取网络流数据;如果小于,则继续读取网络流数据,直到缓冲区中存放的网络流数据大于缓冲区容量的三分之一。
由上述可见,本发明实施例中,通过对缓冲区中缓存的网络流数据大小进行限制,从而控制写入本地文件中网络流数据的写入频率。当一次读取的网络流数据较少时,不产生将缓存的网络流数据写入本地文件中的I/O操作,继续读取网络流数据,从而可以有效减少I/O操作,降低耗时,提高下载速度。进一步地,该方法易于实现,不影响原有的下载流程,又能减少I/O操作,减少了电子设备下载文件的资源开销,提高了下载速度。
图3为本发明实施例下载网络流数据的装置结构示意图。该装置为电子设备,参见图3,该装置包括:下载模块301、判断模块302以及文件写入模块303,其中,
下载模块301,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;
本发明实施例中,作为一可选实施例,下载模块301包括:网络连接单元、读取单元、解析单元、校验单元以及缓冲区单元(图中未示出),其中,
网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;
本发明实施例中,作为一可选实施例,文件属性表信息包括:待下载网络流数据名称、下载路径信息以及待下载网络流数据大小。
作为另一可选实施例,文件属性表信息还包括:文件校验算法、是否采用前向错误纠正、生命周期信息。
作为再一可选实施例,文件属性表信息还包括:文件分割信息以及文件片信息。其中,文件片信息包括:文件片大小以及文件片对应的下载地址。
读取单元,用于从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;
解析单元,用于解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息;
校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;
本发明实施例中,较佳地,下载模块301还可以进一步包括:纠错单元,
校验单元进一步用于在文件校验第一摘要信息与文件校验第二摘要信息不相同的情况下,将解析得到的网络流数据输出至纠错单元;
纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元。
缓冲区单元,用于将接收的网络流数据进行缓存。
作为另一可选实施例,下载模块301可以包括:网络连接单元、多线程读取单元、解析单元、校验单元、纠错单元以及缓冲区单元(图中未示出),其中,
网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;
多线程读取单元,用于依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读取待下载文件片包,所述待下载文件片包为网络服务器将待下载的网络流数据分割为多个文件片,采用预先设置的文件校验算法,对每一文件片进行校验,生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为待下载文件片包;
解析单元,用于解析读取的待下载文件片包,得到网络流数据以及文件片第一摘要信息;
校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,生成文件片第二摘要信息,如果文件片第一摘要信息与文件片第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;如果文件片第一摘要信息与文件片第二摘要信息不相同,将解析得到的网络流数据输出至纠错单元;
纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元;
缓冲区单元,用于将接收的网络流数据进行缓存。
较佳地,下载模块301还可以进一步包括:
下载状态判断单元,用于判断缓冲区单元缓存的网络流数据是否下载完毕,如果未下载完毕,通知判断模块,如果已下载完毕,通知文件写入模块。
判断模块302,用于判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,在缓冲区中缓存的网络流数据大小小于预先设置的网络流数据阈值的情况下,通知下载模块301继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值, 通知文件写入模块303;
本发明实施例中,判断模块302进一步用于在缓冲区中缓存的网络流数据大小不小于预先设置的网络流数据阈值的情况下,通知文件写入模块303。
作为可选实施例,判断模块302包括:缓存容量累计器、累加单元以及判断单元(图中未示出),其中,
缓存容量累计器,用于在下载启动时或将缓冲区中缓存的网络流数据写入本地文件中后,进行清零处理;
累加单元,用于在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;
判断单元,用于读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值,如果是,通知下载模块301继续从网络服务器读取网络流数据并写入到所述缓冲区中;如果不小于,通知文件写入模块303。
文件写入模块303,用于将缓冲区中缓存的网络流数据写入本地文件。
较佳地,该装置还可以进一步包括:
清空处理模块304,用于在监测到缓冲区中缓存的网络流数据写入本地文件后,清空缓冲区中缓存的网络流数据,并通知缓存容量累计器进行清零处理。
较佳地,该装置还可以进一步包括:
组合模块305,用于在确定缓冲区中缓存的网络流数据为文件片后,根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。
本发明实施例的下载网络流数据的装置,下载模块读取待下载的网络流数据并缓存,判断模块检测缓存的网络流数据是否小于网络流数据阈值,如果小于,则暂缓将缓冲区中的网络流数据写入本地文件中,并通知下载模块继续读取网络流数据,降低了网络流数据下载所需的I/O操作次数,能够有效降低操作系统资源消耗、提升网络流数据下载速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算 机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

一种下载网络流数据的方法及装置.pdf_第1页
第1页 / 共18页
一种下载网络流数据的方法及装置.pdf_第2页
第2页 / 共18页
一种下载网络流数据的方法及装置.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种下载网络流数据的方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种下载网络流数据的方法及装置.pdf(18页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN104166567A43申请公布日20141126CN104166567A21申请号201410396103422申请日20140812G06F9/44520060171申请人广州金山网络科技有限公司地址510623广东省广州市天河区珠江东路30号广州银行大厦第六层01B单元72发明人徐初标74专利代理机构北京市广友专利事务所有限责任公司11237代理人祁献民54发明名称一种下载网络流数据的方法及装置57摘要本发明的实施例公开一种下载网络流数据的方法及装置。下载网络流数据的方法包括电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;。

2、判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,将缓冲区中缓存的网络流数据写入本地文件。应用本发明,可以有效降低操作系统资源消耗、提升网络流数据下载速度。51INTCL权利要求书4页说明书10页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书4页说明书10页附图3页10申请公布号CN104166567ACN104166567A1/4页21一种下载网络流数据的方法,其特征在于,该方法包括电子设备与网络服务器建立网络连接,从网络服务。

3、器读取待下载的网络流数据,并缓存至预先设置的缓存区中;判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;将缓冲区中缓存的网络流数据写入本地文件。2根据权利要求1所述的方法,其特征在于,所述电子设备与网络服务器建立网络连接包括电子设备与网络服务器建立套接字连接;电子设备通过套接字连接向网络服务器发送建立网络连接的HTTP请求,以使网络服务器根据接收的HTTP请求中携带的待下载网络流数据名称信息,获取待下载网络流数据名称信息对应的文件属性表信息;接收网。

4、络服务器返回的包含待下载网络流数据的文件属性表信息的HTTP请求响应,构建网络连接。3根据权利要求2所述的方法,其特征在于,所述文件属性表信息包括文件校验算法以及下载路径信息,所述从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括电子设备从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,依据校验结果生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为所述下载路径信息下的待下载文件;解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息,采用预先设置的文件校验算法,对解析的网络流数据进行校。

5、验,依据校验结果生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,将解析得到的网络流数据进行缓存。4根据权利要求3所述的方法,其特征在于,所述文件属性表信息还包括采用前向错误纠正信息,所述方法进一步包括如果文件校验第一摘要信息与文件校验第二摘要信息不相同,采用前向错误纠正对解析的网络流数据进行纠错,利用预先设置的文件校验算法,对进行纠错后的网络流数据进行校验,依据校验结果生成文件校验第三摘要信息,如果文件校验第一摘要信息与文件校验第三摘要信息相同,将进行纠错后的网络流数据进行缓存,如果不相同,重新从网络服务器读取待下载文件。5根据权利要求2所述的方法,其特征在于,所。

6、述文件属性表信息包括文件校验算法、文件分割信息、文件片信息以及采用前向错误纠正信息,所述文件片信息包括文件片对应的下载地址,所述从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括电子设备依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读权利要求书CN104166567A2/4页3取待下载文件片包,所述待下载文件片包为网络服务器依据文件分割信息,将待下载的网络流数据分割为多个文件片,并采用预先设置的文件校验算法,对每一文件片进行校验,依据每一文件片校验结果生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为所述文件片对应的下载地址中的待下载文件。

7、片包;解析读取的待下载文件片包,得到文件片以及该文件片对应的文件片第一摘要信息,采用预先设置的文件校验算法,对解析的文件片进行校验,依据校验结果生成文件片第二摘要信息;判断文件片第一摘要信息与文件片第二摘要信息是否相同,如果相同,将解析得到的文件片进行缓存;如果不相同,采用前向错误纠正对解析的文件片进行纠错,利用预先设置的文件校验算法,对进行纠错后的文件片进行校验,依据校验结果生成文件片第三摘要信息,如果文件片第一摘要信息与文件片第三摘要信息相同,将进行纠错后的文件片进行缓存,如果不相同,重新从网络服务器读取待下载文件片包。6根据权利要求5所述的方法,其特征在于,在将文件片或进行纠错后的文件片。

8、进行缓存后,所述方法进一步包括记录文件片中的帧序列编号,并在向网络服务器返回的反馈信息中,携带记录的帧序列编号,以使网络服务器接收反馈信息,查询该帧序列编号对应的文件片是否已传输完毕,如果是,从未传输的文件片中,选取相应的文件片中数据帧进行传输,如果否,从该帧序列编号对应的文件片中,选取未传输的数据帧进行传输。7根据权利要求5所述的方法,其特征在于,在所述将缓冲区中缓存的网络流数据写入本地文件后,该方法进一步包括根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。8根据权利要求1所述的方法,其特征在于,在所述缓存至预先设置的缓存区中之后,判断缓冲区中缓存的网。

9、络流数据大小是否小于预先设置的网络流数据阈值之前,所述方法进一步包括判断所述待下载的网络流数据是否下载完毕,如果未下载完毕,执行所述判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值的流程;如果下载完毕,执行所述将缓冲区中缓存的网络流数据写入本地文件的流程。9根据权利要求1所述的方法,其特征在于,所述判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值包括设置缓冲区缓存容量累计器,并初始化缓存容量累计器;在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先。

10、设置的网络流数据阈值。10根据权利要求9所述的方法,其特征在于,在所述将缓冲区中缓存的网络流数据写入本地文件后,所述方法进一步包括清空缓冲区中缓存的网络流数据,并对缓存容量累计器进行清零处理。权利要求书CN104166567A3/4页411一种下载网络流数据的装置,其特征在于,该装置包括下载模块、判断模块以及文件写入模块,其中,下载模块,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;判断模块,用于判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,在缓冲区中缓存的网络流数据大小小于预先设置的网络流数据阈值的情况下,通知下载模块继续从网。

11、络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,通知文件写入模块;文件写入模块,用于将缓冲区中缓存的网络流数据写入本地文件。12根据权利要求11所述的装置,其特征在于,所述下载模块包括网络连接单元、读取单元、解析单元、校验单元以及缓冲区单元,其中,网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;读取单元,用于从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文。

12、件校验算法,对待下载的网络流数据进行校验,依据校验结果生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;解析单元,用于解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息;校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,依据校验结果生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;缓冲区单元,用于将接收的网络流数据进行缓存。13根据权利要求12所述的装置,其特征在于,所述下载模块进一步包括纠错单元,校验单元进一步用于在文件校验第一摘要信息与文件校验第二摘要信息。

13、不相同的情况下,将解析得到的网络流数据输出至纠错单元;纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元。14根据权利要求11所述的装置,其特征在于,所述下载模块包括网络连接单元、多线程读取单元、解析单元、校验单元、纠错单元以及缓冲区单元,其中,网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;多线程读取单元,用于依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读。

14、取待下载文件片包,所述待下载文件片包为网络服务器将待下载的网络流数据分割为多个文件片,采用预先设置的文件校验算法,对每一文件片进行校验,依据每一文件片的校验结果生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为待下载文件片包;解析单元,用于解析读取的待下载文件片包,得到网络流数据以及文件片第一摘要信权利要求书CN104166567A4/4页5息;校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,依据校验结果生成文件片第二摘要信息,如果文件片第一摘要信息与文件片第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;如果文件片第一摘要信息与文件片第二摘。

15、要信息不相同,将解析得到的网络流数据输出至纠错单元;纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元;缓冲区单元,用于将接收的网络流数据进行缓存。15根据权利要求14所述的装置,其特征在于,进一步包括组合模块,用于在确定缓冲区中缓存的网络流数据为文件片后,根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。16根据权利要求12至15任一项所述的装置,其特征在于,所述下载模块进一步包括下载状态判断单元,用于判断缓冲区单元缓存的网络流数据是否下载完毕,如果未下载完毕,通知判断模块,如果已下载完毕,通知文件写入模块。

16、。17根据权利要求11所述的装置,其特征在于,所述判断模块包括缓存容量累计器、累加单元以及判断单元,其中,缓存容量累计器,用于在下载启动时或将缓冲区中缓存的网络流数据写入本地文件中后,进行清零处理;累加单元,用于在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;判断单元,用于读取缓存容量累计器中累计的网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值,如果是,通知下载模块继续从网络服务器读取网络流数据并写入到所述缓冲区中;如果不小于,通知文件写入模块。18根据权利要求17所述的装置,其特征在于,进一步包括清空处理模块,用于在监测到缓冲。

17、区中缓存的网络流数据写入本地文件后,清空缓冲区中缓存的网络流数据,并通知用于累计网络流数据容量的缓存容量累计器进行清零处理。权利要求书CN104166567A1/10页6一种下载网络流数据的方法及装置技术领域0001本发明涉及数据下载技术,尤其涉及一种下载网络流数据的方法及装置。背景技术0002随着通信技术,尤其是移动3G、4G通信技术的发展,电子设备,例如,移动电话、个人数字助理、掌上电脑以及台式机电脑的功能越来越强大,电子设备通过采用开放式的操作系统,可装载相应的应用程序来实现相应的应用功能,成为集通话、短信、网络接入、影视娱乐、网络即时通信、网银支付、网络游戏、地图导航为一体的综合性终端。

18、设备,是用户生活、工作、休闲、娱乐的重要载体。由于电子设备上运行的应用功能应用程序数量越来越多,因而,如何快速地从相关运营商或网络服务器下载相关应用功能对应的应用软件或其它网络流数据,成为运营商和用户关注的技术焦点。对于用户来说,电子设备提供的数据下载速度越高,越能提升用户的应用体验;而对于运营商来说,提升电子设备的下载速度,可以留存以及吸引更多的用户,有利于提升市场应用分发的份额,从而提升运营商的盈利。0003目前的电子设备,以基于安卓ANDROID操作系统平台的电子设备进行下载为例,采用超文本传输协议HTTP,HYPERTEXTTRANSFERPROTOCOL下载,在电子设备与网络服务器建。

19、立连接之后,从网络服务器获取所需下载的网络流数据,并将网络服务器传输的网络流数据存放到电子设备本地中预先设置的固定大小的缓冲BUFFER区中,然后,实时将缓冲区中存放的网络流数据写入电子设备预先指定的本地文件中,从而完成一次输入/输出I/O,INPUT/OUTPUT操作。其中,网络流也称之为应用程序编程接口API,APPLICATI/ONPROGRAMMINGINTERFACE,是一些预先定义的函数,目的是提供应用程序与开发人员基于应用软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节;BUFFER指的是JAVA里面的缓冲区,是特定基本类型元素的线性有限序列,通过适当。

20、通道的I/O操作,可以将网络流数据传输到缓冲区,以及将网络流数据从缓冲区传出;I/O操作是指计算机在运行时,CPU、寄存器、内存、外围设备协同一起工作,包括寄存器、内存和外围设备的通信,例如,读文件,是将磁盘文件中的网络流数据数据读到内存,写文件则是将数据从内存中读出并写入到磁盘文件中。此外,I/O操作还还包括一些套接字SOCKET函数的操作,是内存和网卡之间的数据通信。对于电子设备来说,I/O操作速度较慢,耗时较多。0004由上述可见,现有的电子设备下载网络流数据的方法,采用HTTP下载方式,通过I/O操作,从网络服务器获取所需下载的网络流数据,并存放到电子设备的缓冲区中,然后,实时将缓冲区。

21、中中存放的网络流数据写入电子设备的本地文件中。而实际应用中,由于网络连接的不稳定性,使得一次从网络服务器获取读取的网络流数据可能不能将缓冲区存放满,有时,甚至不足缓冲区的十分之一,而对于缓冲区不满的网络流数据,也需要实时进行一次本地文件的I/O操作,以将缓冲区中存放的网络流数据写入到本地文件,并在执行完该I/O操作后,才能继续从网络服务器读取网络流数据执行下一次I/O操作。这样,缓冲区中很少的一点网络流数据,需要进行一次本地文件的I/O操作,由于I/O操作速度较说明书CN104166567A2/10页7慢,耗时较多,使得网络流数据下载速度不高,并消耗了较多的操作系统资源,降低了操作系统性能。发。

22、明内容0005有鉴于此,本发明实施例提供一种下载网络流数据的方法及装置,能够有效降低操作系统资源消耗、提升网络流数据下载速度。0006为达到上述目的,本发明的实施例采用如下技术方案0007一方面,本发明实施例提供一种下载网络流数据的方法,包括0008电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据,并缓存至预先设置的缓存区中;0009判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;0010如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;0011将缓冲区中缓存的网络流数据写入。

23、本地文件。0012本发明实施例提供的下载网络流数据的方法,通过对缓冲区中缓存的网络流数据大小进行限制,从而控制写入本地文件中网络流数据的写入频率。当一次读取的网络流数据较少时,不产生将缓存的网络流数据写入本地文件中的I/O操作,继续读取网络流数据,从而减少I/O操作,能够有效降低操作系统资源消耗、提升网络流数据下载速度。0013另一方面,本发明实施例提供一种下载网络流数据的装置,包括下载模块、判断模块以及文件写入模块,其中,0014下载模块,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;0015判断模块,用于判断缓冲区中缓存的网络流数据大小是否小于。

24、预先设置的网络流数据阈值,在缓冲区中缓存的网络流数据大小小于预先设置的网络流数据阈值的情况下,通知下载模块继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值,通知文件写入模块;0016文件写入模块,用于将缓冲区中缓存的网络流数据写入本地文件。0017本发明实施例提供的下载网络流数据的装置,下载模块读取待下载的网络流数据并缓存,判断模块通过检测缓存的网络流数据大小是否小于网络流数据阈值,如果小于,则暂缓将缓冲区中的网络流数据写入电子设备的本地文件中,而是通知下载模块继续从网络服务器读取网络流数据,如果不小于,才通知文件写入模块将缓存的数据写入本。

25、地文件,无需实时进行本地文件的I/O操作,降低了网络流数据下载所需的I/O操作次数,能够有效降低操作系统资源消耗、提升网络流数据下载速度。附图说明0018为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。说明书CN104166567A3/10页80019图1为本发明实施例下载网络流数据的方法流程示意图;0020图2为本发明实施例下载网络流数据的方法具体流程示意图;0021图3为本发明实施例下。

26、载网络流数据的装置结构示意图。具体实施方式0022下面结合附图对本发明实施例进行详细描述。0023应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。0024图1为本发明实施例下载网络流数据的方法流程示意图。参见图1,该方法包括0025步骤101,电子设备与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据,并缓存至预先设置的缓存区中;0026步骤102,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值;0027本步骤中,预先设置的缓冲区用。

27、于存放网络服务器传输的网络流数据,即从网络服务器读取的网络流数据。0028本发明实施例中,网络流数据阈值可根据实际需要进行设置,例如,对于固定容量大小的缓冲区,网络流数据阈值可以为一定值,而对于容量大小可变的缓冲区,网络流数据阈值可以为该缓冲区容量的一百分比。当然,实际应用中,定值的网络流数据阈值也可以认为是该缓冲区容量的一固定百分比,因而,网络流数据阈值可以包括网络流数据容量阈值以及缓冲区容量百分比阈值,其中,0029网络流数据容量阈值为一定值,本发明实施例中,只要小于缓冲区容量即可。例如,对于设置的用于缓存下载的网络流数据的缓冲区,如果缓冲区容量为100M,则网络流数据容量阈值可以设置为3。

28、0M、60M或90M等。0030缓冲区容量百分比阈值可设置为缓冲区容量的一百分比,例如,缓冲区容量百分比阈值为设置为30、50、80等。0031步骤103,如果小于所述网络流数据阈值,继续从网络服务器读取网络流数据并写入到所述缓冲区中,直至缓冲区中写入的网络流数据大于所述网络流数据阈值;0032本步骤中,当缓冲区中缓存的网络流数据大小小于网络流数据阈值时,无需实时将缓冲区中存放的网络流数据写入电子设备的本地文件中,而是继续从网络服务器读取网络流数据。0033步骤104,将缓冲区中缓存的网络流数据写入本地文件。0034本步骤中,在缓冲区中写入的网络流数据大于所述网络流数据阈值后,将缓冲区中缓存的。

29、网络流数据写入本地文件。0035本发明实施例中,电子设备通过检测每一次从网络服务器读取的网络流数据大小是否小于预先设置的网络流数据阈值,如果小于,则暂缓将缓冲区中的网络流数据写入电子设备的本地文件中,而是继续从网络服务器读取网络流数据,并继续添加到缓冲区,直到缓冲区中缓存的网络流数据大于网络流数据阈值,才写入本地文件。这样,在网络连接不稳定性,一次从网络服务器读取的网络流数据大小不满足网络流数据阈值的情况下,无需实说明书CN104166567A4/10页9时进行一次本地文件的I/O操作,而是继续从网络服务器读取网络流数据,直至缓冲区中缓存的网络流数据大小大于网络流数据阈值后,将缓冲区中缓存的网。

30、络流数据写入电子设备的本地文件中,从而完成一次I/O操作,由于有效降低了网络流数据下载的I/O操作次数,节约了操作系统资源,提升了操作系统性能,从而有效提高网络流数据的下载速度。0036图2为本发明实施例下载网络流数据的方法具体流程示意图。参见图2,该方法包括0037步骤201,电子设备与网络服务器建立网络连接;0038本步骤中,较佳地,采用超文本传输协议HTTP,HYPERTEXTTRANSFERPROTOCOL建立网络连接。当然,实际应用中,也可以采用安全超文本传输协议HTTPS,SECUREHYPERTEXTTRANSFERPROTOCOL或文件传输协议FTP,FILETRANSFERP。

31、ROTOCOL等建立网络连接。0039本发明实施例中,电子设备与网络服务器建立网络连接具体包括0040A11,电子设备与网络服务器建立套接字SOCKET连接;0041本步骤中,通过IP地址和端口号建立套接字连接。0042A12,电子设备通过套接字连接向网络服务器发送建立网络连接的HTTP请求;0043本步骤中,HTTP请求可以是GET命令,也可以是POST命令,以GET命令为例,GET命令的格式可以为0044GET路径/文件名HTTP/1。0045其中,0046文件名为待访问的文件,即待下载网络流数据对应的文件名,也就是待下载网络流数据名称信息;0047HTTP/1为电子设备的WEB浏览器使用。

32、的HTTP版本。0048A13,网络服务器接收HTTP请求,进行事务处理,向电子设备返回HTTP请求响应,构建网络连接。0049本步骤中,事务处理为网络服务器根据接收的HTTP请求中携带的待下载网络流数据名称信息,获取待下载网络流数据名称信息对应的文件属性表信息。0050网络服务器接收HTTP请求后,进行事务处理,处理结果通过HTTP请求响应传回给电子设备,从而在电子设备的WEB浏览器上显示出待下载网络流数据所在的页面。例如,电子设备与网络服务器WWWMYCOMPANYCOM8080建立套接字连接后,发送GET命令GET/RSMAINEXEHTTP/10,表示需要从网络服务器下载文件名为RSM。

33、AINEXE的可执行文件网络流数据。主机名为WWWMYCOMPANYCOM的网络服务器在自身的存储空间中搜索RSMAINEXE的可执行文件。如果找到该文件,则将该文件的文件属性表信息封装在HTTP请求响应中,传送给电子设备。0051本发明实施例中,文件属性表信息可以包括待下载网络流数据名称文件名、下载路径信息以及待下载网络流数据大小。0052进一步地,为了保障待下载网络流数据在下载过程中的准确性,还可以包括文件校验算法、是否采用前向错误纠正FEC,FORWARDERRORCORRECTION、生命周期信息等。其中,文件校验算法用于在网络服务器端,对待传输的网络流数据进行文件校验,依据校验结果生。

34、成文件校验第一摘要信息较佳地,直接将校验结果作为文件校验第一摘要信息,以说明书CN104166567A5/10页10及,在电子设备端,对接收的网络流数据进行文件校验,并将校验结果作为文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,表明网络流数据传输正确;如果文件校验第一摘要信息与文件校验第二摘要信息不相同,表明网络流数据传输不正确。是否采用前向错误纠正是在文件校验第一摘要信息与文件校验第二摘要信息不相同的情况下,是否需要对接收的网络流数据进行进行前向错误纠正,以恢复正确的网络流数据。生命周期信息为待下载网络流数据设置生命周期,在设置的生命周期内,用户可以进行下载,而在。

35、设置的生命周期到时,将该待下载网络流数据进行清除或不允许用户下载。0053本发明实施例中,文件校验算法包括CRC32校验算法、安全哈希算法、信息摘要算法5等。0054实际应用中,为了提高电子设备的下载速度,可以设置电子设备采用并行下载的方式进行网络流数据下载。因而,较佳地,为了适应并行下载的需求,网络服务器还可以将待下载的网络流数据文件分割为等长或不等长的文件片,并记录文件的分割信息,这样,文件属性表信息可以进一步包括文件分割信息以及文件片信息,其中,0055文件分割信息为待下载的网络流数据分割的文件片数量;0056文件片信息包括文件片大小以及文件片对应的下载地址,其中,每一文件片或多个文件片。

36、可以对应一下载地址,电子设备可以根据每个文件片的下载地址并行下载相应的文件片。这样,通过为文件片设置下载地址,使得电子设备可以依据各文件片对应的下载地址进行相应下载,从而实现并行下载。0057当然,实际应用中,为了保障网络服务器传输网络数据流的准确性,还可以对文件片中的数据进行帧序列编号,每一文件片包括多个帧序列编号,例如,包括的帧序列编号可以是八位二进制符号表示的0254。0058步骤202,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;0059本步骤中,电子设备根据文件属性表信息中的下载路径信息,从网络服务器读取相应的待下载的网络流数据。0060如前所述,为了保障网络流数据。

37、在传输过程中的可靠性和准确性,网络服务器在下发网络流数据时,可以采用预先设置的文件校验算法,对传输的网络流数据进行校验。因而,作为一可选实施例,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括0061网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;0062本步骤中,当前待下载的网络流数据为网络服务器一次传输的数据,经过多次传输,可以将用户所需下载的网络流数据传输完毕。0063电子设备从网络服务器读取待下载文件,解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息。

38、,采用预先设置的文件校验算法,对解析的网络流数据进行校验,生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,将解析得到的网络流数据进行缓存。0064本发明实施例中,对于文件校验第一摘要信息与文件校验第二摘要信息不相同的说明书CN104166567A106/10页11情况,该方法进一步包括0065采用前向错误纠正对解析的网络流数据进行纠错,利用预先设置的文件校验算法,对进行纠错后的网络流数据进行校验,生成文件校验第三摘要信息,如果文件校验第一摘要信息与文件校验第三摘要信息相同,将进行纠错后的网络流数据进行缓存,如果不相同,重新从网络服务器读取待下载文件。0066作为另。

39、一可选实施例,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中包括0067网络服务器将待下载的网络流数据分割为多个文件片;0068采用预先设置的文件校验算法,对每一文件片进行校验,生成相应的文件片第一摘要信息,并将文件片以及相应的文件片第一摘要信息封装为待下载文件片包;0069本步骤中,利用文件校验算法对文件片进行校验,生成文件片第一摘要信息,每一文件片对应一文件片第一摘要信息。0070电子设备依据文件属性表信息中的文件片下载地址信息,启用多线程从网络服务器读取待下载文件片包,解析读取的待下载文件片包,得到文件片以及该文件片对应的文件片第一摘要信息,采用预先设置的文件校验算法,对解。

40、析的文件片进行校验,生成文件片第二摘要信息;0071判断文件片第一摘要信息与文件片第二摘要信息是否相同,如果相同,将解析得到的文件片进行缓存;0072如果不相同,采用前向错误纠正对解析的文件片进行纠错,利用预先设置的文件校验算法,对进行纠错后的文件片进行校验,生成文件片第三摘要信息,如果文件片第一摘要信息与文件片第三摘要信息相同,将进行纠错后的文件片进行缓存,如果不相同,重新从网络服务器读取待下载文件片包。0073本发明实施例中,对于并行下载以及文件片中的数据进行帧序列编号的情形,电子设备可以不严格按照帧序列编号进行接收,电子设备在获取文件属性表信息后,可以根据获取的文件属性表信息预知文件的重。

41、构结构、每一文件片在文件中的起始位置以及长度。因而,电子设备可以根据自身的资源状态,选择支持文件片的乱序接收,或者按照帧序列编号依序接收。对于乱序接收,在将文件片或进行纠错后的文件片进行缓存后,该方法还可以进一步包括0074记录文件片中的帧序列编号,并在向网络服务器返回的反馈信息中,携带记录的帧序列编号;0075网络服务器接收反馈信息,查询该帧序列编号对应的文件片是否已传输完毕,如果是,从未传输的文件片中,选取相应的文件片中数据帧进行传输,如果否,从该帧序列编号对应的文件片中,选取未传输的数据帧进行传输。0076当然,实际应用中,网络服务器在传输文件片后,还可以启动定时器,如果在预先设置的定时。

42、时间内没有接收到该文件片的反馈信息,则启动重传。0077进一步地,为了节约电子设备用于下载的资源,提升资源利用效率,降低网络流数据下载所需的时间,该方法还可以进一步包括0078在网络流数据传输中断后,按照预先设置的间隔周期向网络服务器发送网络连接请求,如果在预先设置的连接时间阈值内没有接收到网络服务器的网络连接请求响应,确说明书CN104166567A117/10页12定网络连接异常,终止下载;如果接收到网络连接请求响应,则将记录的传输中断处的文件片的帧序列编号发送至网络服务器,网络服务器根据接收的文件片的帧序列编号判断下载是否完成,如果未完成,从接收的帧序列编号开始进行传输,如果完成,则结束。

43、下载,从而实现断点续传。0079本步骤中,在下载过程中,如果出现断网情况,电子设备记录当前下载的文件片的帧序列编号,在网络重新恢复连接时,根据记录的文件片的帧序列编号向网络服务器发送下载请求,继续进行网络流数据下载,直至下载完该网络流数据对应的所有文件片。0080步骤203,判断网络流数据是否下载完毕,如果未下载完毕,执行步骤204,如果下载完毕,执行步骤206;0081本步骤中,判断网络流数据是否下载完毕可依据待下载的网络流数据大小以及缓存容量累计器中累计的网络流数据容量和本地文件中写入的该次下载对应的网络流数据大小来确定,即如果缓存容量累计器中累计的网络流数据容量和本地文件中写入的该次下载。

44、对应的网络流数据大小之和等于待下载的网络流数据大小,确定网络流数据下载完毕。0082步骤204,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值,如果是,执行步骤205,否则,执行步骤207;0083本步骤中,作为可选实施例,判断缓冲区中缓存的网络流数据大小是否小于预先设置的网络流数据阈值包括0084设置缓冲区缓存容量累计器,并初始化缓存容量累计器;0085本步骤中,在下载启动时或将缓冲区中缓存的网络流数据写入本地文件中后,对缓存容量累计器进行清零。0086在将文件片或进行纠错后的文件片进行缓存后,将当前缓存的文件片的容量累加至缓存容量累计器;0087读取缓存容量累计器中累计的。

45、网络流数据容量,判断累计的网络流数据容量是否小于预先设置的网络流数据阈值。0088本步骤中,可以在每一次缓存文件片网络流数据或多次缓存文件片后,相应读取缓存容量累计器中累计的网络流数据容量。0089步骤205,继续从网络服务器读取网络流数据并写入到所述缓冲区中,返回执行步骤203;0090步骤206,将缓冲区中缓存的网络流数据写入本地文件;0091步骤207,将缓冲区中缓存的网络流数据写入本地文件,返回执行步骤205。0092本发明实施例中,作为一可选实施例,在确定将缓冲区中缓存的网络流数据写入本地文件后,该方法可以进一步包括0093步骤208,清空缓冲区中缓存的网络流数据,并对缓存容量累计器。

46、进行清零处理。0094作为另一可选实施例,对于依据文件片进行下载的情形,在将缓冲区中缓存的网络流数据写入本地文件后,该方法进一步包括0095步骤209,根据文件属性表信息中的文件分割信息以及文件片信息,将写入本地文件的所有文件片组合成文件。0096本发明实施例中,采用HTTP建立下载连接,然后读取网络流数据,添加到缓冲区中后,首先检测待下载的网络流数据文件是否读取完毕,如果读取完毕,则写入本地文说明书CN104166567A128/10页13件,结束下载;如果待下载文件没有读取完毕,则检测缓冲区中存放的网络流数据的大小是否大于网络流数据阈值,例如,缓冲区容量的三分之一,如果大于或等于,则写入本。

47、地文件,清空缓冲区,并继续读取网络流数据;如果小于,则继续读取网络流数据,直到缓冲区中存放的网络流数据大于缓冲区容量的三分之一。0097由上述可见,本发明实施例中,通过对缓冲区中缓存的网络流数据大小进行限制,从而控制写入本地文件中网络流数据的写入频率。当一次读取的网络流数据较少时,不产生将缓存的网络流数据写入本地文件中的I/O操作,继续读取网络流数据,从而可以有效减少I/O操作,降低耗时,提高下载速度。进一步地,该方法易于实现,不影响原有的下载流程,又能减少I/O操作,减少了电子设备下载文件的资源开销,提高了下载速度。0098图3为本发明实施例下载网络流数据的装置结构示意图。该装置为电子设备,。

48、参见图3,该装置包括下载模块301、判断模块302以及文件写入模块303,其中,0099下载模块301,用于与网络服务器建立网络连接,从网络服务器读取待下载的网络流数据并缓存至预先设置的缓存区中;0100本发明实施例中,作为一可选实施例,下载模块301包括网络连接单元、读取单元、解析单元、校验单元以及缓冲区单元图中未示出,其中,0101网络连接单元,用于与网络服务器建立套接字连接,通过套接字连接向网络服务器发送建立网络连接的HTTP请求,接收网络服务器返回的HTTP请求响应,构建网络连接,所述HTTP请求响应中携带有待下载的网络流数据的文件属性表信息;0102本发明实施例中,作为一可选实施例,。

49、文件属性表信息包括待下载网络流数据名称、下载路径信息以及待下载网络流数据大小。0103作为另一可选实施例,文件属性表信息还包括文件校验算法、是否采用前向错误纠正、生命周期信息。0104作为再一可选实施例,文件属性表信息还包括文件分割信息以及文件片信息。其中,文件片信息包括文件片大小以及文件片对应的下载地址。0105读取单元,用于从网络服务器读取待下载文件,所述待下载文件为网络服务器采用预先设置的文件校验算法,对待下载的网络流数据进行校验,生成文件校验第一摘要信息,并将待下载的网络流数据以及文件校验第一摘要信息封装为待下载文件;0106解析单元,用于解析读取的待下载文件,得到网络流数据以及文件校验第一摘要信息;0107校验单元,用于采用预先设置的文件校验算法,对解析的网络流数据进行校验,生成文件校验第二摘要信息,如果文件校验第一摘要信息与文件校验第二摘要信息相同,向缓冲区单元输出解析得到的网络流数据;0108本发明实施例中,较佳地,下载模块301还可以进一步包括纠错单元,0109校验单元进一步用于在文件校验第一摘要信息与文件校验第二摘要信息不相同的情况下,将解析得到的网络流数据输出至纠错单元;0110纠错单元,用于采用前向错误纠正对接收的网络流数据进行纠错,并将进行纠错后的网络流数据输出至校验单元。0111缓冲区单元,用于将接收的网络流数据进行缓存。0112作为另一可选实施。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1