网络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所示

DiyVM:2G内存/50G硬盘/元起线路香港vps带宽CN2线路,香港VPS五折月付50元起

DiyVM是一家低调国人VPS主机商,成立于2009年,提供的产品包括VPS主机和独立服务器租用等,数据中心包括香港沙田、美国洛杉矶、日本大阪等,VPS主机基于XEN架构,均为国内直连线路,主机支持异地备份与自定义镜像,可提供内网IP。最近,商家对香港机房VPS提供5折优惠码,最低2GB内存起优惠后仅需50元/月。下面就以香港机房为例,分享几款VPS主机配置信息。CPU:2cores内存:2GB硬...

RepriseHosting:$27.97/月-L5640,16G内存,1TB硬盘,10TB月流量,西雅图机房

RepriseHosting是成立于2012年的国外主机商,提供独立服务器租用和VPS主机等产品,数据中心在美国西雅图和拉斯维加斯机房。商家提供的独立服务器以较低的价格为主,目前针对西雅图机房部分独立服务器提供的优惠仍然有效,除了价格折扣外,还免费升级内存和带宽,商家支持使用支付宝或者PayPal、信用卡等付款方式。配置一 $27.97/月CPU:Intel Xeon L5640内存:16GB(原...

ShockHosting($4.99/月),东京机房 可享受五折优惠,下单赠送10美金

ShockHosting商家在前面文章中有介绍过几次。ShockHosting商家成立于2013年的美国主机商,目前主要提供虚拟主机、VPS主机、独立服务器和域名注册等综合IDC业务,现有美国洛杉矶、新泽西、芝加哥、达拉斯、荷兰阿姆斯特丹、英国和澳大利亚悉尼七大数据中心。这次有新增日本东京机房。而且同时有推出5折优惠促销,而且即刻使用支付宝下单的话还可获赠10美金的账户信用额度,折扣相比之前的常规...

ftp下载工具为你推荐
吴晓波频道买粉《充电时间》的节目跟《吴晓波频道》哪个好听?工信部备案怎样在工信部进行域名备案?要详细微信如何建群微信建群怎么建iphone越狱后怎么恢复苹果越狱后怎么恢复出厂设置ios系统ios系统有哪些版本?虚拟专用网拨号网络与虚拟专用网的区别三星s8什么时候上市三星s8什么时候首发Qzongqzong皮肤上怎样写字微信电话本怎么用怎么用微信打电话网站地图制作如何制作网站地图sitemap,经验分享
紧急升级请记住新域名 中文国际域名 天津服务器租赁 腾讯云盘 便宜域名 Dedicated 淘宝双十一2018 国外在线代理 智能骨干网 dux cdn加速原理 上海联通宽带测速 raid10 闪讯官网 web服务器搭建 万网空间 可外链的相册 数据湾 512内存 alexa世界排名 更多