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

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

A400互联37.8元/季,香港节点cn2,cmi线路云服务器,1核/1G/10M/300G

A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...

易探云月付18元起,香港/美国/深圳/北京VPS,CN2、BGP等多线路

易探云怎么样?易探云是国内一家云计算服务商家,致力香港服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。易探云服务器均选择当下热门线路,比如CN2 GIA、BGP线路、CN2线路等,所有云主机支持月付,并且首月优惠,年付优惠,优惠后香港沙田云服务器/独立ip/香港CN2线路,每月仅18元,188元/年。点击进入:易探云官方网站地址1、香港...

ftp下载工具为你推荐
qq讨论组QQ群和讨论组的区别在哪里51自学网站网上自学网站有哪些?最好是免费的,我想学习网页设计吴晓波频道买粉《充电时间》的节目跟《吴晓波频道》哪个好听?公章制作如何用photoshop制作公章自助建站什么情况下采用自助建站方式建站好?数码资源网安卓有没有可以离线刷题的软件?今日热点怎么删除怎么删除手机百度实时热点ios7固件下载iOS7如何升级固件?奇虎论坛奇虎论坛最新推荐歌曲列表·bluestack安卓模拟器bluestacks怎么用?
抗投诉vps主机 全球付 域名优惠码 网站被封 牛人与腾讯客服对话 seednet umax120 gtt 微软服务器操作系统 512mb 服务器是干什么用的 shuang12 什么是web服务器 石家庄服务器 websitepanel magento主机 删除域名 此网页包含的内容将不使用安全的https alertpay 美国达拉斯 更多