网页脚本分析在断点续传下载中的应用 (毕业设计61页、22350字)
摘要:Internet技术的发展日新月异,网络上存储了非常丰富的信息资源,现在我们可以使用下载工具,把需要的信息资源下载到本地。 本论文用Delphi 7设计了一个多线程下载软件,可分析动态和静态网页,分析深层实际链接,获得真实下载URL。本软件的设计主要分为两个大的部分,一是软件主要以及各子窗体界面的设计;二是实现断点续传下载功能的源代码的编写,并将要下载的图片,文本等分类保存在本地。最后,所完成的下载软件在执行过程中,可以根据需要弹出一些完成不同操作的对话框,如新建任务、保存路径的选择和线程数调整等,这些对话框都是在需要时动态生成的,然后将选定要下载的文件下载到本地计算机上。经过调试,本软件能够实现断点续传的下载功能。
关键字:脚本分析;多线程;断点续传;Delphi
The web page script analysis is in break order continuously spread download of application
Abstract: Internet technology is advancing rapidly, network storage on a very rich information resources. Now we can use downloaded tool for the integration of information downloaded to the local resources. The design papers designed a multi-threading download software with Delphi 7, which has the capability to analyze static and dynamic nets and can deeply analyze the actual link to gain the true download URL.And the design with Delphi 7 includes two main parts. First,the main body of the software and the design of the sub-window interfaces; Second, programing the source code to carry out the function of breakpoint transmition, and preserving classifily the pre-downloadable pictures, text and so on to the local computer.Finally, the completed download software in the implementation process can complete some different operating dialog boxes based on need, such as new assignment, the selection of the path preservation, the adjustment of the thread and so on. These dialog boxes are dynamically generated based on need, and then the selected files will be downloaded to the local computer.After debugging, the software can basically achieve the function of breakpoint transmition.
Key words: Scriptinganalysis,Multith-reading,Breakpoint transmission,Delphi
目 录 第1章 绪 论 1 1.1 研究背景 1 1.2 国内外研究现状 1 1.3 选题目的及意义 3 1.4 主要研究内容 3 第2章 相关工具及理论简介 4 2.1 DELPHI的网络编程 4 2.2用DELPHI设计窗体 5 2.3脚本语言简介 6 2.4 TCP/IP与HTTP协议 6 第3章 系统设计方案 9 3.1 软件系统流程图 9 3.2 系统静态框图 10 第4章 系统实现 12 4.1 用户界面模块的实现 12 4.1.1 菜单栏的创建 12 4.1.2 快速按钮栏 16 4.1.3 文件管理栏 19 4.1.4 文件下载信息栏 21 4.2脚本分析模块的实现 22 4.3多线程模块的实现 24 4.4 断点续传模块的实现 28 第5章 程序调试 31 结 论 33 致 谢 34 参考文献 35 附 录 36 附录1:英文文献翻译 36 附录2:头信息的读取 40 附录3:多线程代码 44 附录4:断点续传源代码 52
第1章 绪 论 1.1 研究背景 近十多年来,计算机网络通信技术是世界上发展最快的前沿技术之一。随着计算机在各行各业中的广泛应用,特别是在通信领域中的应用,计算机网络编程就越来越成为一名通信专业的学生必不可缺的专业技术。 在当今的网络时代,下载软件是使用最为频繁的软件之一。几年来,下载技术也在不停地发展。最原始的下载功能仅仅是个“下载”过程,即从WEB服务器上连续地读取文件。其最大的问题是,由于网络的不稳定性,一旦连接断开使得下载过程中断,就不得不全部从头再来一次。随后,断点续传的概念就出来了,顾名思义,就是如果下载中断,在重新建立连接后,跳过已经下载的部分,而只下载还没有下载的部分。 无论多线程下载技术是否是洪以容先生的发明,洪以容使得这项技术得到前所未有的关注是不争的事实。在网络蚂蚁软件流行开后,许多下载软件也都纷纷效仿,是否具有多线程下载技术、甚至能支持多少个下载线程都成了人们衡量下载软件的要素。多线程下载的基础是WEB服务器支持远程的随机读取,也即支持断点续传。这样,在下载时可以把文件分成若干部分,每一部分创建一个下载线程进行下载。 现在,不要说编写专门的下载软件,在自己编写的软件中,加入下载功能有时也非常必要。如让自己的软件支持自动在线升级,或者在软件中自动下载新的数据进行数据更新,这都是很有用、很实用的功能。 1.2 国内外研究现状 正如网络起源于国外一样,下载这个词汇也是从英文download翻译过来的。最初的时候,这个词汇还不是十分常用,后来随着网络的普及,下载就成为一种必不可少的资源共享方式[1]。 浏览器属于第一代下载工具。这种工具除了具有多任务属性以外,其自动化程度也是比较高的。就下载软件而言,只要点击的链接指向的文件名称具有.exe或者.zip扩展名,就能够打开供用户选择保存到本地计算机上的对话框。第一代下载工具主要的缺点有两个:一个是用户自己不能方便地定制所能够下载的文件的类型,另外一个就是下载的过程一旦中途因为意外情况中断,已经下载过来的那些数据就作废了。为了克服这种缺点,人们专门开发了优化下载过程的工具软件。最早的就是以当时的GetRight、Go!Zilla以及NetVampire等为代表的断点续传下载工具。这种工具的优点就是能够具体地管理下载的过程,即使中断了,也可以重新接着中断的地方下载。实际上,专用的下载工具不但从这方面进行了优化,而且将其它更多的与下载有关的功能都集成进来,如下载以后文件的保存与管理、病毒自动扫描以及自动定时下载、可任意定制能够下载的文件类型等等。可以说,经典的断点续传工具属于第二代下载工具。 第二代下载工具对于网络的具体情况考虑得不是十分周到,亦即没有针对连接的具体情况进行优化,因此在线路拥挤的时候,下载的速度往往比较慢。这种工具对于线路带宽资源的利用是以多任务的方式来实现的。但是并非任何时候都需要下载多个文件。如果只下载一个文件,有时候就不能充分地利用线路的带宽资源。 随着人们对下载速度要求的提高,第三代下载工具也就应运而生了。这类下载工具国内的以网络蚂蚁、网际快车(最开始的时候叫JetCar)以及下载专家(DLExpert等为代表),国外的则以DownloadAccelerator、MassDownloader等为代表。这类工具最大的特点就是能够同远程服务器建立多个连接来分块下载同一个文件,这就是所谓的多线程下载工具。但是,这些经典的多线程下载工具都是同一台远程服务器建立多个连接,如果这台服务器出现繁忙状态,那么即使建立了1000个连接也是无济于事。这种技术上的局限性反应在实际中,就是多线程下载工具的下载速度有时候并不比用浏览器下载速度来得更快。毫无疑问,我们真正需要的是第四代下载工具。 第四代下载工具克服了第三代下载工具名不副实的缺点,采用同时同多个服务器建立多线程联系的方式来提高下载速度。这类下载工具利用同一个文件(主要是软件)常常存放在不同的镜像服务器上,而软件下载网页也常常提供多个下载链接这样一种便利条件,在用户的指令下,同每个可用的服务器建立下载关系,同时每个下载关系又是多线程方式。这种双层的下载过程最大限度地保证了下载的高效。因为即使一台远程服务器出现拥挤现象,依旧可以从并不拥挤的服务器上高速下载。这种下载方式通常称为多目标多线程下载技术。令人惋惜的就是,采用这种最先进的下载技术的第四代下载工具极其稀少,目前比较成熟易用的就只有一个,这就是国内出品的中国网爪。中国网爪最大的特点就是支持使用多个链接来同时下载一个软件。为了利用这个功能,来到下载网页以后,要将多个可用的下载链接都告诉中国网爪。中国网爪就能够自动将多个链接积累保存在自己的链接列表中供下载的时候使用,再选择每个链接要使用的线程数,进而以多目标多线程方式下载软件。无疑的,第四代下载工具将在网络下载方面发挥越来越重要的作用,并且变的越来越完善[2]。
1.3 选题目的及意义 计算机网络编程是IT专业学生非常重要的一个基本技能,通过本毕业设计,学生可以复习计算机网络相关知识,掌握一门程序开发语言,锻炼程序设计技能。本设计要求设计一个软件,可分析动态和静态网页,分析深层实际链接,获得真实下载URL,并将要下载的图片、文本等保存在本地。 在完成系统软件设计的同时,可以帮助我们熟悉Windows操作系统,TCP/IP协议、HTTP协议、文件结构及Delphi语言,学会对动态和静态网页的深层实际链接进行分析,并学会对HTML语言进行头文件分析,获得下载文件的大小、名称等信息,然后用编写好的程序对文件进行多线程断点续传,最后,将下载的文件分类保存到本地,实现文件的本地管理。
1.4 主要研究内容 主要实现基于网络的HTTP的多线程断点续传下载。本系统采用功能强大的BorlandDelphi 7作为工具来开发,整个系统操作简便,界面美观、灵活、实用、快速。用Delphi 7设计本软件,主要分为两大部分,一是软件主要用户界面的实现,二是多线程断点续传功能的实现,其中第二部分成为了本设计的主体部分,它又分为: 1. 脚本分析部分; 2. 多线程下载部分 3. 断点续传部分。
|