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

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

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

作者声 明

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

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

特此声明。

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

签字日期 年 月 日

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

学位论文指导教师签名

年 月 日

FTP多线程下载工具

黄辰

Multithread Downloading SystemHuang chen

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所示

VPS云服务器GT线路,KVM虚vps消息CloudCone美国洛杉矶便宜年付VPS云服务器补货14美元/年

近日CloudCone发布了最新的补货消息,针对此前新年闪购年付便宜VPS云服务器计划方案进行了少量补货,KVM虚拟架构,美国洛杉矶CN2 GT线路,1Gbps带宽,最低3TB流量,仅需14美元/年,有需要国外便宜美国洛杉矶VPS云服务器的朋友可以尝试一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器...

VirMach:$7.2/年KVM-美元512MB/$7.2/年MB多个机房个机房可选_双线服务器租赁

Virmach对资源限制比较严格,建议查看TOS,自己做好限制,优点是稳定。 vCPU 内存 空间 流量 带宽 IPv4 价格 购买 1 512MB 15GB SSD 500GB 1Gbps 1 $7/VirMach:$7/年/512MB内存/15GB SSD空间/500GB流量/1Gbps端口/KVM/洛杉矶/西雅图/芝加哥/纽约等 发布于 5个月前 (01-05) VirMach,美国老牌、稳...

bgpto:日本独立服务器6.5折($120起),新加坡独立服务器7.5折($93起)

bgp.to在对日本东京的独立服务器进行6.5折终身优惠促销,低至$120/月;对新加坡独立服务器进行7.5折终身优惠促销,低至$93/月。所有服务器都是直连国内,速度上面相比欧洲、美国有明显的优势,特别适合建站、远程办公等多种用途。官方网站:https://www.bgp.to/dedicated.html主打日本(东京、大阪)、新加坡、香港(CN)、洛杉矶(US)的服务器业务!日本服务器CPU...

ftp下载工具为你推荐
百度k站百度K站是什么原因呢?iphone5解锁苹果5手机怎么屏幕解锁天天酷跑刷金币天天酷跑如何刷分刷金币?直播加速怎么让已拍摄好的视频加速qq怎么发邮件怎样在QQ上发送邮件?创维云电视功能很喜欢创维云电视,它到底有哪些独特功能?mate8价格华为mate8什么时候会降价iphone6上市时间iphone6什么时候上市,价格是多少?云挂机云挂机每天2+元你提了吗?什么是云平台云平台和云计算的区别是什么?
北京主机租用 hostgator simcentric 美国主机推荐 电影服务器 linode代购 cpanel主机 wordpress技巧 好看的桌面背景图 国内php空间 空间论坛 1g空间 空间首页登陆 帽子云排名 西安主机 中国linux 杭州电信宽带优惠 徐州电信 2016黑色星期五 ftp是什么东西 更多