《多线程下载软件的设计与实现》-公开DOC·毕业论文

上传人:zhuma****mei1 文档编号:134104391 上传时间:2020-06-02 格式:DOC 页数:27 大小:516.50KB
返回 下载 相关 举报
《多线程下载软件的设计与实现》-公开DOC·毕业论文_第1页
第1页 / 共27页
《多线程下载软件的设计与实现》-公开DOC·毕业论文_第2页
第2页 / 共27页
《多线程下载软件的设计与实现》-公开DOC·毕业论文_第3页
第3页 / 共27页
《多线程下载软件的设计与实现》-公开DOC·毕业论文_第4页
第4页 / 共27页
《多线程下载软件的设计与实现》-公开DOC·毕业论文_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《《多线程下载软件的设计与实现》-公开DOC·毕业论文》由会员分享,可在线阅读,更多相关《《多线程下载软件的设计与实现》-公开DOC·毕业论文(27页珍藏版)》请在金锄头文库上搜索。

1、本科毕业论文 设计 原创性声明本科毕业论文 设计 原创性声明 本人郑重声明 所呈交的论文是本人在导师的指导下独立进行研究所取 得的研究成果 除了文中特别加以标注引用的内容外 本论文不包含任何其他 个人或集体已经发表或撰写的成果作品 本人完全意识到本声明的法律后果 由本人承担 作者签名 年 月 日 目 录 摘 要 I 关键词 I Abstract I Key words I 1 绪论 1 1 1 课题的研究背景与意义 1 1 2 我国下载工具软件现状分析及发展趋势 1 1 2 1 软件界面 1 1 2 2 聚合资源 1 1 2 3 资源占用情况对比 2 1 3 当今流行下载工具的工作原理 2 1

2、 3 1 HTTP 下载 2 1 3 2 FTP 下载 2 1 3 3 P2P 下载 2 2 关键技术概述 3 2 1 多线程技术 3 2 2 HTTP 协议 4 2 3 断点续传技术 4 2 4 开发工具介绍 4 3 系统需求分析 5 3 1 用户需求分析 5 3 2 业务流分析 5 3 3 可行性分析 5 4 系统概要设计 6 4 1 用户界面分析 6 4 2 下载任务管理模块 7 4 3 任务信息显示模块 8 4 4 配置管理模块 9 5 系统功能实现 11 5 1 主界面实现 11 5 2 任务管理功能实现 12 5 2 1 下载功能实现 12 5 2 2 断点续传实现 15 5 3

3、下载信息显示模块实现 15 5 3 1 下载信息显示 15 5 3 2 多任务下载 18 5 4 配置管理实现 19 5 4 1 设置默认目录 20 5 4 2 下载完后关机 20 小结 22 致谢 23 参考文献 24 I 多线程下载软件的设计与实现 摘摘 要要 线程可以理解为下载的通道 一个线程就是一个文件的下载通道 多线程也就是同时开 起几个下载通道 相对单线程而言 多线程把资源文件按线程数分割成相应数目的片段进行分段并 发下载 提高了 CPU 的利用率 也有利于提高下载速度 鉴于当前绝大部分下载工具都讨论的平 台支持话题 本文以 C 为编程语言 以 QT creator 为开发平台 实

4、现了一个简单的多线程下载工 具 本论文分析了在网络环境中基于 HTTP 协议进行多线程下载和断点续传的原理和实现方法 对 下载工具的需求分析 具体设计 代码实现 系统测试进行了详尽阐述 同时论述了基于 HTTP FTP P2P P2SP 等下载模式的优缺点 关键词关键词 多线程 下载 断点续传 Design and Implementation of the Multithread Downloading System Abstract The thread can be understood as download channel and one thread is one download

5、 channel of file Multi threading is that which open some download channels at the same time In terms of the relative single threading multi threading divides resource into many parts which are as many as the number of the threads for downloading That can improve the utilization of CPU and improve th

6、e speed of downloading According to the topic of support on platforms for download tools this paper disigned a simple download tool which made C as the programming language and based on development platform of JDK1 6 and JcreatorPro This paper also analyzed the theory and implementation of multi thr

7、eading and breakpoint resume which based on HTTP protocol in the network environment Key words Muti threaded Download Breakpoint Resume 1 1 绪论 在当今的网络时代 下载软件是使用最为频繁的软件之一 几年来 下载技术也在不停地发展 最原始的下载功能仅仅是个 下载 过程 即从 WEB 服务器上连续地读取文件 其最大的问题是 由于网络的不稳定性 一旦连接断开使得下载过程中断 就不得不全部从头再来一次 随后 断 点续传 的概念就出来了 顾名思义 就是如果下载中断

8、在重新建立连接后 跳过已经下载的部 分 而只下载还没有下载的部分 无论 多线程下载 技术是否是洪以容先生的发明 洪以容使得 这项技术得到前所未有的关注是不争的事实 在 网络蚂蚁 软件流行开后 许多下载软件也都纷 纷效仿 多线程下载 的基础是 WEB 服务器支持远程的随机读取 也即支持 断点续传 这样 在下载时可以把文件分成若干部分 每一部分创建一个下载线程进行下载 本文介绍了基于 HTTP 协议的多线程下载和断点续传的实现方法 并给出了一个多线程下载工具的实现过程 1 1 课题的研究背景与意义 以往我们开发的程序大多是单线程的 即一个程序只有一条从头至尾的执行线索 然而现实世 界中的很多过程都

9、具有多条线索同时动作的特性 例如 我们可以一边看电视 一边活动胳膊 如 果不容许这样做 我们会感觉很难受 再如一个网络服务器可能需要同时处理多个客户机的请求等 多线程是指同时存在几个执行体 按几条不同的执行线索共同工作的情况 它使得编程人员可 以很方便地开发出具有多线程功能 能同时处理多个任务的功能强大的应用程序 虽然执行线程给 人一种几个事件同时发生的感觉 但这只是一种错觉 因为我们的计算机在任何给定的时刻只能执 行那些线程中的一个 多个线程的执行是并发的 也就是在逻辑上 同时 而不管是否是物理上的 同时 如果系 统只有一个 CPU 那么真正的 同时 是不可能的 但是由于 CPU 的速度非常

10、快 用户感觉不到 其中的区别 因此我们也不用关心它 只需要设想各个线程是同时执行即可 自从 多线程下载 技术发明以来 这项技术得到前所未有的关注已是不争的事实 在 网络 蚂蚁 软件流行开后 许多下载软件也都纷纷效仿 是否具有 多线程下载 技术 甚至能支持多 少个下载线程都成了人们评测下载软件的要素 多线程下载 的基础是 WEB 服务器支持远程的 随机读取 也即支持 断点续传 这样 在下载时可以把文件分成若干部分 每一部分创建一个 下载线程进行下载 1 2 我国下载工具软件现状分析及发展趋势 我国的下载工具软件现在正处在一个高速发展期 由迅雷 THUNDER 风行 电驴 EMULE 等领航前进

11、从多方面资源搜索与调查来看 从本人目前的了解出发 未来的资源下 载工具会向以下几个方向发展 1 2 1 软件界面 无论多漂亮的界面 看惯了也会生厌 主界面是否具有新意和个性 是否能够在第一时间吸引 用户的目光 操作是否简单 人性化 将是用户关注的重点 至于功能方面反而在其次了 毕竟同 类型下载工具之间的差距不会很大 如表 1 1 是对迅雷 风行 电驴的界面调查结果 表 1 1 界面调查对比表 迅雷风行电驴 界面无广告 易于上手 视频播放窗口外部播放器内置外部播放器 2 1 2 2 聚合资源 决定下载软件成败与否的关键因素有两个 一是下载的速度 二是资源的丰富性和优质性 这 两者缺一不可 但目前

12、大部分下载工具还仅仅停留在只追求速度的基础上 而事实上 用户对资源 的诉求已经远远高于了对速度的诉求 这就导致眼下各类下载软件陷入了死胡同 如表 1 2 是对迅雷 风行 电驴连接上的时间以及资源的调查结果 表 1 2 资源调查对比表 软件名称开始连接到视频播放时 种子数 连接数 3 分钟记录 迅雷1 分 54 秒 30 200 风行36 秒 42 117 电驴8 分 32 秒 7 204 1 2 3 资源占用情况对比 各款软件的资源占用情况 也是很多人非常关心的一个问题 不过 由于在 P2P 下载过程中 内存占用会根据其下载数据量大小以及种子的多少而实时变化 如图 1 1 所示 对迅雷 风行

13、电 驴的资源占用情况对比的柱形图 图 1 1 资源占用情况对比图 1 3 当今流行下载工具的工作原理 现在流行的下载模式有基于 HTTP FTP P2P 和 P2SP 下载模式 1 3 1 HTTP 下载 HTTP 是 HYPER TEXT TRANSPORTATION PROTOCOL 超文本传输协议 的缩写 它是计算 机之间交换数据的方式 原理非常简单 就是用某种规则 协议 和提供文件的服务器取得联系并 将文件搬到自己的计算机中来 从而实现下载的功能 也就是指可以从网页上直接通过链接获得文 件地址的下载方式 1 3 2 FTP 下载 FTP 是 TRANSPORTATION PROTOCO

14、L 文件传输协议 的缩写 是一种很常用的网络下载方 式 它的标准地址形式就像 FTP 218 79 9 100 DOWNLOAD 123 ZIP 其下载基本与 HTTP 相同 1 3 3 P2P 下载 P2P 是英文 PEER TO PEER 对等 的简称 又被称为 POINT TO POINT 点对点 对等 技术 是一种网络新技术 依赖网络中参与者的计算能力和带宽 而不是把依赖都聚集在较少的几 台服务器上 它是下载术语 意思是在你自己下载的同时 自己的电脑还要继续做主机上传 这样 你就可以在就近的资源点上下载自己需要的资料 P2P 工作原理如图 1 2 所示 3 图 1 2 P2P 工作原理

15、图 此外 还有一种方式是对 P2P 技术的进一步延伸 叫 P2SP 它不但支持 P2P 技术 同时还通过 多媒体检索数据库这个桥梁把原本孤立的服务器资源和 P2P 资源整合到了一起 用户下载资源的时 候可以从任意就近的 PC 端或者服务器下载想要的资源 而且下载的同时下载程序会从多个资源丰 富的站点产生多个镜像 同时下载文件 P2SP 工作原理如图 1 3 所示 图 1 3 P2SP 工作原理图 2 关键技术概述 2 1 多线程技术 线程是一组指令的集合 或者是程序的特殊段 它可以在程序里独立执行 也可以把它理解为 代码运行的上下文 所以线程基本上是轻量级的进程 它负责在单个程序里执行多任务

16、通常由操 作系统负责多个线程的调度和执行 4 在本设计中 多线程的技术用在新建新任务和下载线程上 在系统中我们可以开始多个下载线 程下载同一个网络上的资源而互不干扰 它从宏观上看是并行运行的 但对于微观上来说 它是却 是串行运行的 线程的运行在操作系统的调度下 各自得到一定的时间片 当某一线程获取到时间 片时 它就进入运行状态 各个线程按照一定的协议分别获取时间片 2 2 HTTP 协议 HTTP HYPERTEXT TRANSFER PROTOCOL 超文本传输协议 是 WEB 协议集中的重要协 议 用来在 INTERNET 上传送超文本的传送协议 它是从客户机 服务器模型发展起来的 客户机 服务器是运行一对相互通信的程序 客户与服务器连接时 首先 向服务器提出请求 服务器根据 客户的请求 完成处理并给出响应 浏览器就是与 WEB 服务器产生连接的客户端程序 它的端口 为 TCP 的 80 端口 WEB 的应用层协议是 HTTP 它是 WEB 的核心 HTTP 使用 TCP 而不是 UDP 作为它的支 撑运输层协议 TCP 为 HTTP 提供可靠数据传输服务 这意味着 一个客户机进程

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号