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

天上云:香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路

天上云服务器怎么样?天上云是国人商家,成都天上云网络科技有限公司,专注于香港、美国海外云服务器的产品,有多年的运维维护经验。世界这么大 靠谱最重,我们7*24H为您提供服务,贴心售后服务,安心、省事儿、稳定、靠谱。目前,天上云香港大带宽物理机服务器572元;20Mbps带宽!三网CN2线路,香港沙田数据中心!点击进入:天上云官方网站地址香港沙田数据中心!线路说明 :去程中国电信CN2 +中国联通+...

RAKsmart秒杀服务器$30/月,洛杉矶/圣何塞/香港/日本站群特价

RAKsmart发布了9月份优惠促销活动,从9月1日~9月30日期间,爆款美国服务器每日限量抢购最低$30.62-$46/月起,洛杉矶/圣何塞/香港/日本站群大量补货特价销售,美国1-10Gbps大带宽不限流量服务器低价热卖等。RAKsmart是一家华人运营的国外主机商,提供的产品包括独立服务器租用和VPS等,可选数据中心包括美国加州圣何塞、洛杉矶、中国香港、韩国、日本、荷兰等国家和地区数据中心(...

萤光云(20元/月),香港CN2国庆特惠

可以看到这次国庆萤光云搞了一个不错的折扣,香港CN2产品6.5折促销,还送50的国庆红包。萤光云是2002年创立的商家,本次国庆活动主推的是香港CN2优化的机器,其另外还有国内BGP和高防服务器。本次活动力度较大,CN2优化套餐低至20/月(需买三个月,用上折扣+代金券组合),有需求的可以看看。官方网站:https://www.lightnode.cn/地区CPU内存SSDIP带宽/流量价格备注购...

ftp下载工具为你推荐
可以发外链的论坛发外链的论坛哪个比较好,哪个论坛能发外链,能发广告急求。。。。简体翻译成繁体简体字怎么换成繁体。。?畅想中国淄博畅想中国消费怎么样迅雷云点播账号求百度云或者迅雷云播账号密码怎么升级ios6iPad怎么升级到iOS6正式版?安装迅雷看看播放器迅雷看看播放器安装宕机宕机 这个词是什么意思啊ios系统iOS系统为什么那么好如何快速收录谁知道怎么快速被搜索引擎快速收录啊?电子商务网站模板电子商务网站模板哪个好?电子商务网站模板免费建站怎么样?
网址域名注册 windows虚机 俄罗斯vps 美国加州vps linuxvps 2017年黑色星期五 100m免费空间 dux 如何安装服务器系统 四核服务器 网通服务器 114dns 网站加速 广州服务器托管 开心online privatetracker 512内存 register.com ncp 建站技术 更多