网络FTP多线程下载工具毕业论文

ftp下载工具  时间:2021-02-23  阅读:()

本科生毕业设计论文论文题目  FTP多线程下载工具

姓 名  黄辰

学 号  1021111221

班 级  10211112班

年 级  2010级

专 业  软件工程

学 院  软件学院

指导教师  张军副教授

完成时间  2014年5月13日

作者声明

本人以信誉郑重声明所呈交的学位毕业设计论文是本人在指导教师指导下由本人独立撰写完成的没有剽窃、抄袭、造假等违反道德、学术规范和其他侵权行为。文中引用他人的文献、数据、图件、资料均已明确标注出不包含他人成果及为获得东华理工大学或其他教育机构的学位或证书而使用过的材料。对本设计论文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本毕业设计论文引起的法律结果完全由本人承担。

本毕业设计论文成果归东华理工大学所有。

特此声明。

毕业设计论文作者签字

签字日期年月日

本人声明该学位论文是本人指导学生完成的研究成果 已经审阅过论文的全部内容并能够保证题目、关键词、摘要部分中英文内容的一致性和准确性。

学位论文指导教师签名

年月日

FTP多线程下载工具

黄辰

Multithread Downloading SystemHuangchen

2014年5月13日

摘 要

随着中国现代互联网行业的飞速发展网络用户的数量以及用户年龄阶层在不断的扩大。 网络需求的增长刺激着IT技术不断的提升。

网络使人与人、人与事之间的交互变得简单高效。对远程资源的访问是网络最基本的功能之一高效的访问速度构成了网络如今的蓬勃发展。本文主要对“从远程服务端获取资源”进行了论述讲解了网络的重要性以及对人类的生活带来的影响。本文开始介绍了网络下载的基本概念分析了FTP协议下载的理论及其发展历程。对FTP协议的地址格式、传输模式、连接模式进行了简单的介绍。接下来论述了现代网络下载工具的技术原理及实现分析了断点续传技术和多线程编程技术对网络下载的影响。

本文设计了一个以FTP下载协议为基础、多线程编程为技术手段的FTP多线程下载工具。该系统利用多线程编程技术模拟多个客户端与远程服务器进行通信使系统下载速度快。利用复合文档存储下载流使本地存储速度快整合率高易于检查数据完整性。利用面向对象的思维设计程序结构使程序易于扩展协议内容。文章的最后给出了部分程序源代码讲解了设计的思路。

关键词: 多线程下载 FTP 断点续传

Abstract

With the rapid development of modern Internet industry in China, the number ofnetwork users as well as the age is constantly expanding.The growth of network demands,continuous ly stimulate the promotion o f IT techno lo gy.

Internet enable the interaction among people and objects becomes easier and moreefficient.The access to remote network resources is one of the basic functions of network,and rapid speed of access forms the prosperity of network.This article expressed the themeof"get the resources from a remote server" ,And also explained the importance of thenetwork, and the impact on human being’ s life .Firstly,this article presented the basicconcepts of download, analyzed the theory of FTP protocol as well as the process ofdevelopment .And also simply introduced address format ,transmission mode as well asthe connection mode of FTP protocol.Then it discussed the technology, principle andimplementation of network download tools in nowadays,And also analyze the impact ofHTTP technology as well as the multi-threaded programming techniques on the downloadsfro m the network.

Finally, the article introduced the design of the multi-threaded downloading tool thatbased on FTP protocol and taken multi-threaded program as technical means.The systemmaked the uses of multi-threaded programming techniques to simulate multiple clients tocommunicate with a remote server.This technology makes the downloading speed of thesystem faster.This system uses the composite document to storage downloading stream,that makes speed of storage faster, promotes the efficiency of integration,and checksintegrity of data easier.In this program,Using the object-oriented method to develop theconstruction of the program,make the program easy to extend the protocol.In the end ofthe article,it presents some source codes,analyses the cogitation of the design.

Keywo rds:Multi-thre aded Do wnload;F TP;Breakpo int Resume;

目 录

1 绪论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1 1研究意义及目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

1 2研究内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

2 程序开发的技术基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 1 FTP协议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 1 1 FTP协议简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 1 2 FTP的工作原理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2

2 2多线程技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2 2 1 多线程简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2 2 2线程的创建. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4

2 3断点续传技术. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2 3 1 断点续传简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2 3 2 多线程技术与断点续传技术的结合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2 4复合文档. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5

2 5套接字编程简介. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6

2 6 Qt开发平台介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7

3 系统需求分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

3 1开发背景及目的. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

3 2下载工具应具备的基础功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

3 2 1远程访问模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

3 2 2下载管理模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

3 2 3配置管理模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

3 2 4日志输出模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

3 3任务分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

3 3 1性能要求. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

3 3 2运行环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

3 4数据流分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

4 系统概要设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

4 1系统逻辑结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

4 2系统类图设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14

4 3系统项目文档结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

4 4系统重用设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

5 系统功能的详细设计和实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

5 1程序界面设计实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

5 2程序返回值的定义. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

5 3服务器接受请求应答实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .22

5 4 FTP命令的管理与执行的技术实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

5 4 1 FTP命令管理的技术实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

5 4 2 FTP命令执行的技术实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

5 5下载模块的技术与实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25

5 5 1 多线程通信的设计实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .26

5 5 2线程任务分配的设计实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

5 5 3复合文档的使用与合并数据的技术实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

5 5 4下载线程的设计与实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31

5 5 5系统退出时下载模块信息保存的技术实现. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

结论. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

致谢. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

参考文献. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1

东华理工大学毕业设计论文 绪论

1

1 绪论

随着21世纪网络信息时代的到来 网络在人类的生活中已经是不可或缺的一部分。人们在网络上办公、看新闻、听音乐、娱乐、购物等等上网时间占据了生活的大部分。

1 . 1研究意义及目的

如今 网络用户的数量在不断的增长 网络需求也在不断的扩大 网络负载率在不断的提高。网络的访问速率影响着用户的上网体验现代网络普遍存在访问速率过慢的现象。在这种情况下多线程下载工具呼之欲出。用以改善下载资源过慢的状况。

在传统的C/S架构中通过FTP下载文件的步骤为客户端发送文件获取命令给服务端服务端响应FTP命令向客户端传输文件客户端接收文件数据下载结束。传统的资源获取方式简单方便在网络时代刚刚成型的初期 网络用户量并不庞大这种方式很好的解决了用户获取资源的问题。如今网络用户数量在不断的增长导致网络的访问速率过低。为了能更快的获取网络资源需要在传统的方式上进行改进。

1 .2研究内容

本文主要研究了网络下载文件的原理及相关的技术实现。系统基于FTP(文件传输协议) 采用FTP的RFC959标准实现了基本的FTP命令。系统结合多线程技术和断点续传技术实现了对文件的并发分块下载可以有效的提高下载速度。

东华理工大学毕业设计论文 程序开发的技术基础

2

2 程序开发的技术基础

2. 1 FTP协议

2. 1 . 1 FTP协议简介

File Transfer Protocol FTP翻译为“文件传输协议”  它可以在网络上任意两台计算机之间传输文件是当前使用广泛的协议之一。 FTP协议普遍应用在C/S架构中可以在控制台命令中手工使用FTP命令这样可以方便熟悉FTP命令的相关参数及作用。 FTP地址格式如下所示 阅读本文前读者可以去网络上搜寻相关的FTP内容ftp://帐号:密码@ip地址(域名) :端口号/路径/文件名

在上述地址格式中只有ip地址(域名)参数是必须的其它的参数都有默认值。在网络中存在许多“匿名”服务器这类服务器用于向公众提供免费的文件传输服务此类FTP都有统一的匿名登录帐号:anonymous。

2. 1 .2 FTP的工作原理

FTP的传输模式有两种。 ASCII传输模式是以ASCII编码传输数据这种模式主要用来传输文字信息等一系列非二进制格式存储的文件二进制传输模式是以二进制流传输数据这种模式主要用来传输以二进制格式存储的文件。

FTP的连接模式有两种。主动连接是指客户端主动创建一个数据连接并将数据连接的地址通过PORT命令发送给服务端服务端连接到这个端口上。被动连接是指客户端发送PASV命令给服务端 由服务端创建一个数据连接并将数据地址和端口号发送给客户端客户端连接到这个端口上。

FTP比其他网络协议复杂。通信需要创建两条连接控制连接和数据连接。

控制连接是初始时客户端向服务端发送的连接。控制连接用来发送控制命令 比如连接建立后发送命令USER进行登录。登录成功后可以发送LIST命令获取当前的文件列表发送CWD命令改变服务器的工作路径等等。

数据连接指的是传输文件内容的连接。 比如在控制连接上用户发送LIST命令请求获取服务器的文件列表时服务器与客户端会通过两种连接模式中的一种协商好数据端口和数据地址然后建立连接。在这条连接上传输数据。 FTP的通信如图1所示

小渣云(36元/月)美国VPS洛杉矶 8核 8G

小渣云 做那个你想都不敢想的套餐 你现在也许不知道小渣云 不过未来你将被小渣云的产品所吸引小渣云 专注于一个套餐的商家 把性价比 稳定性 以及价格做到极致的商家,也许你不相信36元在别人家1核1G都买不到的价格在小渣云却可以买到 8核8G 高配云服务器,并且在安全性 稳定性 都是极高的标准。小渣云 目前使用的是美国超级稳定的ceranetworks机房 数据安全上 每5天备份一次数据倒异地 支持一...

PacificRack - 洛杉矶QN机房 低至年$7.2 同有站群多IP地址VPS主机

需要提前声明的是有网友反馈到,PacificRack 商家是不支持DD安装Windows系统的,他有安装后导致服务器被封的问题。确实有一些服务商是不允许的,我们尽可能的在服务商选择可以直接安装Windows系统套餐,毕竟DD安装的Win系统在使用上实际上也不够体验好。在前面有提到夏季促销的"PacificRack夏季促销PR-M系列和多IP站群VPS主机 年付低至19美元"有提到年付12美元的洛杉...

简单测评v5.net的美国cn2云服务器:电信双程cn2+联通AS9929+移动直连

v5.net一直做独立服务器这块儿的,自从推出云服务器(VPS)以来站长一直还没有关注过,在网友的提醒下弄了个6G内存、2核、100G SSD的美国云服务器来写测评,主机测评给大家趟雷,让你知道v5.net的美国云服务器效果怎么样。本次测评数据仅供参考,有兴趣的还是亲自测试吧! 官方网站:https://v5.net/cloud.html 从显示来看CPU是e5-2660(2.2GHz主频),...

ftp下载工具为你推荐
windows优化大师怎么用windows优化大师怎么用﹖暴风影音怎么截图暴风影音3 如何截图打开网页出现错误显示网页上错误,打不开网页怎么办万网核心代理哪里可以注册免费代理?arm开发板arm开发板是干什么用的,是用在什么领域方面的不兼容WIN7 64位系统与某些软件不兼容怎么办?蘑菇街美丽说蘑菇街美丽说唯品会天猫京东。女生买衣服,哪个好神雕侠侣礼包大全神雕侠侣先手礼包在哪领创维云电视功能创维健康云电视有什么功能?怎么升级ios6苹果IOS5怎么升级IOS6版本
awardspace wavecom 小米数据库 中国电信测速112 国外免费全能空间 阿里校园 免费高速空间 美国免费空间 国外免费asp空间 空间登录首页 免费个人网页 大化网 乐视会员免费领取 最新优惠 美国十大啦 server2008 alexa搜 byebyelove sockscap怎么用 更多