ftp多线程下载工具毕业论文(编辑修改稿)内容摘要:
227 (数据连接地址和端口号 ) 请求: REST 11111(文件传输开始的地址) 响应: 350 ................................... 多线程技术与断点续传技术的结合 多线程技术结合断点续传技术指的是用户在上传或下载资源数据时,将需要上传或下载的资源数据划分成 N个数据块,创建多个下载线程, 每一个下载线程下载不同的数据块,最后将下载完成的数据块拼接起来。 复合文档 复合文档是一种 COM 结构化存储技术。 微软的 doc 格式文档使用的就是复合文档技术。 复合文档不仅可以存储文本信息,还可以存储各种其他类型的信息,如:图片信息、声音信息。 不仅如此,复合文档还允许多个线程同时在复合文档的不同数据流东华理工大学毕业设计(论文) 程序开发的技术基础 6 中读写数据。 创建复合文档的函数如下所示: StgCreateDocfile(const WCHAR* pwcsName, //复合文档文件名 DWORD grfMode, //标志位 DWORD reserved, IStorage** ppstgOpen)。 //创建的复合文档的指针 当调用 StgCreateDocfile 函数创建一个复合文档后,返回的第四个参数称为根存储,利用 IStorage 根存储的成员函数可以创建数据流。 如下所示: HRESULT CreateStream ( Storage * This, //流所在的存储指针 const OLECHAR *pwcsName, //流名字 DWORD grfMode, //标志位 DWORD reserved1, DWORD reserved2, IStream **ppstm)。 //返回的流指针 创建数据流后,可以调用 IStream 的成员函数 Read 和 Write 读写数据。 除了创建数据流,还可以调用它的另一个成员函数 CreateStorage(...)创建子存储,子存储又可以创建自己的数据流和子存储。 套接字编程简介 Socket 最早出现在 UNIX 系统中,它是 TCP/IP 协议栈向应用程序提供的接口,用于在两个基于 TCP/IP 协议的应用程序之间相互通信。 Scoket 相当于一部电话,通过它,可以与网络中的其他计算机相互通信。 Windows 系统上,套接字用 SOCKET 进行表示, SOCKET 实际是一个指针,指向一个数据结构,微软对 SOCKET 的底层实现进行了封装。 使用 WinSock 编程时,可以不必了解底层协议,因为所 有的 API 都进行了封装。 套接字编程包括客户端的编写和服务端的编写,这里主要介绍 windows 系统下客户端的编写,客户端的编写主要包括初始化 WinSock、创建套接字、建立连接、发送和接收数据。 套接字的编程步骤简单叙述为:首先,调用 WSAStartup 函数初始化 WinSock 动态链接库, WSAStartup 必须是应用程序调用的第一个 WinSock 函数,允许应用程序指定要使用的 WinSock 版本;初始化完成后,调用 socket 函数创建一个 SOCKET 套接字,套接字有流式和数据报两种类型,流式采用 TCP 协议实现,数据报套采用 UDP协议实现;套接字创建后,用 sockaddr_in 填写 ip地址和端口号。 调用 connect 函数连接服务器;之后就可以调用 recv 函数(接收)和 send 函数(发送)数据了。 代码如下所示: WSADATA wsa_data。 东华理工大学毕业设计(论文) 程序开发的技术基础 7 WSAStartup(MAKEWORD(2,0), amp。 wsa_data)。 SOCKET soc = socket(AF_INET, SOCK_STREAM, 0)。 //创建流失套接字 struct sockaddr_in serv_addr, = AF_INET。 = htons(16301)。 //16301为端口号 = i_addr()。 // ip 地址 int result = connect(soc, (struct sockaddr*)amp。 serv_addr, sizeof(serv_addr))。 if (result == 0)//连接成功 { char *send_data = hello。 result = send(soc, send_data, strlen(send_data), 0)。 char recv_buffer[20]。 result = recv(soc, recv_bufer, 20, 0)。 } Qt 开发平台介绍 Qt 是由奇趣科技开发的 C++图形界面开发框架。 利用 Qt,应用程序可以轻松的做出图形界面,使开发人员可以将主要的精力放在逻辑层的实现上。 这里简单介绍 Qt的核心机制:信号 —— 槽机制。 信号 —— 槽机制是 Qt 自己定义的通信方式。 在生成代码时,使用 moc 工具生成所需要的附加代码。 当某个继承自 QObject 类的对象需要将自身的状态改变发送出去的时候,就发射一个信号,所有与该信号相连接的槽都会得到调用。 并且,信号是可以跨线程发射的。 信号 — 槽的使用方式如下: class test : QObject //要使用信号槽机制必须继承 QObject { Q_OBJECT signals: void Change()。 //声明一个信号,信号只需声明不需要定义 private slots: void recv()()。 //声明一个槽。 槽不仅可以接受信号,也可以普通的被调用 } test::test() { //连接一个信号和槽。 这里连接 Change()信号到 _recv()槽上 connect(this, SIGNAL(Change()), this, SLOT(_recv()))。 东华理工大学毕业设计(论文) 程序开发的技术基础 8 emit Change()。 //使用 emit发送一个信号,相关联的槽 (如这里的 _recv())将得到调用 } void test::recv() { //当发送 Change信号时,这个函数会得到调用 } 东华理工大学毕业设计(论文) 系统需求分析 9 3 系统需求分析 为了使系统能够达到预期的目标,良好的发挥作用。 需要对系统进行需求分析,需求分析能够有效的减少开发阻力。 在需求分析阶段,应画出程序的功能结构图。 开发背景及目的 当今的网络发展已经今非昔比,但由于中国的人口众多,网络访问速率还是一个很严峻的问题。 软件技术的发展给提升网络速率带来了福音。 网络下载资源是使用网络的基本功能之一,提升下载资源的速率可以很好的改善用户的体验。 下载工具应具备的基础功能 下载系统的功能主要包括:远程访问、下载管理、配置管理、日志输出。 图 4 系统功能结构图 远程访问模块 远程访问模块提供了服务器与用户的交互功能。 当用户使用下载系统时,首先填写服务器的地址、端口号、登录名和密码。 下载系统根据用户填写的地址和端口号向远程服务器发送连接请求。 与服务器建立连接后,下载系统根据登录名和密码进行登录验证。 当验证成功后,发送命令获取服务器的文件列表信息并将其显示在程序界面东华理工大学毕业设计(论文) 系统需求分析 10 上。 用户可以查看服务器当前目录下的文件信息、修改当前的工作目录,如:返上一层目录和进入指定目录。 下载管理模块 当用户点击下载按钮下载文件时,下载系统将用户点击的文件名、 文件路径和系统参数中的线程分配额度、存储路径、存储文件名发给下载管理模块。 下载管理模块首先创建一个复合文档,然后创建一定数量的下载线程。 下载线程向服务器发送命令,下载任务分配的数据块,将数据块存储到复合文档的数据流中。 下载过程中,实时向用户显示下载的进度、速率、线程数等相关信息。 用户可以选择删除或者暂停下载任务。 删除下载任务将关闭下载线程并删除复合文档,暂停任务只是关闭下载线程,以后还可以继续开始下载。 配置管理模块 配置管理模块主要用来设置以及存储系统的相关配置参数信息。 用户可以设置系统的相关参 数,如:线程分配额度和默认存储路径。 线程分配额度影响下载文件时使用的下载线程数,用户可以改动这个参数使下载线程的数量增加或减少。 默认存储路径是下载文件的默认设置,用户可以更改默认路径。 日志输出模块 用户操作下载系统时,比如当用户点击连接按钮连接服务器时,下载系统将发送连接请求并将程序的运行信息显示在日志输出栏中。 用户可以根据日志输出栏的日志查看当前下载系统的操作已经进行到哪一步。 日志输出模块主要输出三种日志:下载系统的 FTP 命令发送日志、远程服务器的应答日志、系统的错误日志。 用户可以根据日志选择 接下来的操作。 如发现系统连接失败,则用户可以尝试重新连接。 任务分析 性能要求 ( 1)下载工具应操作简单,符合用户使用习惯; ( 2)下载工具整体应具有良好的容错性,对于服务器的应答错误及网络异常应有较好的处理机制; ( 3)下载工具应有具有较高的安全性,防止用户信息的泄漏; ( 4)下载工具应具有良好的稳定性; ( 5)下载工具应具有良好的扩展性,可以满足 FTP 协议的扩展; 东华理工大学毕业设计(论文) 系统需求分析 11 运行环境 ( 1)系统运行的软件环境: Windows 系统操作系统。 ( 2)硬件环境: CPU:1GHz 以上,内存: 128M 以上。 数据流分析 图 5 数据流顶层图 如图 5 所示,为顶层数据流图。 用户的操作通过 FTP 下载系统处理后以 FTP 命令的形式发送给服务器。 服务器响应命令并向下载系统发送应答码和资源数据。 下载系统对应答码进行解析,对资源进行存储,将结果返回给用户。 图 6 数据流第一层图 如图 6 所示为数据流第一层图,下载系统主要分为两个部分:远程连接和下载资源。 远程连接处理用户与服务器之间的交互操作,如用户的登录,服务器状态信息的东华理工大学毕业设计(论文) 系统需求分析 12 获取、文件列表的获取、修改服务器路径等功能。 下载资源主要处理用户的下载操作。 如用户的新建、删除、暂停、开始等下载任务。 图 7 远程连接细分 当用户点击连接按钮时,远程连接模块创建套接字与服务器连接,连接建立后,将需要执行的 FTP 命令加入到 FTP 命令管理处, FTP 命令管理处依据 FTP命令添加的顺序向服务器发送命令请求,接收服务器的应答信息。 图 8 下载资源细分 当用户新建下载任务时,下载系统将任务请求交给下载模块,下载模块根据用户提供的下载信息和系统的参数信息分配下载线程进行下载。 下载线程将命令添加到FTP 命令管理处。 FTP 命令管理处根据 FTP 命令添加的顺序向服务器发送命令请求,东华理工大学毕业设计(论文) 系统需求分析 13 接收服务器的应答信息和数据流,下载模块根据数据流信息生成目标文件,下载完成。 东华理工大学毕业设计(论文) 系统概要设计 14 4 系统概要设计 系统逻辑结构 本文实现的下载系统采用 C/S结构,实现了 FTP 的客户端部分。 下载系统在逻辑上可分为三个层次,表现层、业务逻辑层、命令执行层。 系统在逻辑上分层,可以降低系统的耦合度,有利于系统的开发和维护。 表现层是系统的最上层。 负责系统界面的管理,控件的初始化;用户操作的合理性检验,将合理的请求下发给业务逻辑层;显示业务逻辑层的处理结果。 业务逻辑层是系统的中间层,是系统的核心部分,负责对用户的操作进行处理。 主要分为两个部分,远程交互部分和下载部分。 表现层根据用户请求的性质进行区分,将与服务器交互的命令(如:登录、获取服务器状态)发送给远程交互部分,将用户的下载请求发 送给下载部分。 远程交互部分和下载部分将用户的请求分解为一系列的FTP 命令并将这些命令发送给命令执行层执行,最后将处理的结果返回给表现层。 命令执行层是系统的最下层,负责处理业务逻辑层下发的 FTP 命令请求,向服务器发送 FTP 命令,当服务器返回应答信息时,接收并解析服务器的应答信息;当需要下载资源时,也是由命令执行层接收数据,并将数据返回给业务逻辑层。 系统类图设计 程序的主类 UML 图如图 9所示。 系统主要分为三大模块,分别为:远程访问模块、下载模块、 FTP 命令控制模块。 远程访问模块的主类为 RemoteServer,下载模块的主类为 DdController, FTP 命令控制模块的主类为 RequestCore。 界面管理类为 AppUI类。 当用户进行操作时,界面管理类 AppUI 将操作命令发送给命令分发类CmdController。 命令分发类主要完成两个功能:将用户与服务器交互的命令发送给远程访问类 RemoteServer 处理,将用户下载命令发送给下载。ftp多线程下载工具毕业论文(编辑修改稿)
相关推荐
业业绩影响的文章,我们会发现目前主要是从盈利角度来研究这两者间的关系。 ERP 作为一种先进的企业管理工具,可以给企业带来管理思想的变化、管理效率和管理水平的提高,考虑 ERP 实施的高 成本会给企业短期内的盈利水平带 3 来冲击,所以我们认为从集中管控以及营运能力的角度来探究 ERP 实施与企业业绩的关系更具有客观性,也更有意义。 本文以 FS 控股公司 实施 ERP 的企业作为研究对象
相比 , RTK 测量受通视条件、能见度、气候、季节等因素的影响和限制小 , 在传统测量看来难于开展作业的地区 , 只要能满足 RTK 的基本工作条件 , 它也能进行快速高精度定位 , 使测量工作变得更容易更轻松。 ④ RTK测量自动化、集成化程度高 , 数据处理能力强。 RTK 可进行多种测量内、黑龙江工程学院成人教育学院本科生毕业论文 7 外业工作。 移动站利用软件控制系统 ,
......................................................................................................... 41 结论 .......................................................................................
Flash 的技术 资料 和范例。 吸引了不少 Flash 爱好者,对众多 Flash 爱好者跨越技术门槛起到了很大帮助,相当多的人开始具备创作自己的作品的能力 [2]。 国外大量的优秀 Flash 动画在国内迅速传播,因其不少作品很符合大众口味。 而且 Flash 这种新颖的便于网络传播的形式,喜好 Flash 动画的观众数量积聚增加。 滨州学院专科毕业设计(论文) 3
间中。 流行歌手 BECK 和 DURAN DURAN 运用 FLASH 制作的 MTV 可以同时在网络 和 电视台 进行 播出。 在游戏领域 相关: 索尼公司宣布将 利用 这项技术制作 PLAYSTATION 2 的片头。 此外因为 它能够 节省在 游戏软件中电影片段所占 的 数据容量,预计 可以 为 DVD 游戏软件节省出 更多的空间。 网络的飞速发展,令人们的生活水平有了显著的提高
研计划、资料收集、参考文献等内容。 ( 1)完成论文的基础 大学四年对本专业国际经济与贸易的学习,让我对经济学产生了浓厚的兴趣,特别是跨国公司概论、国际贸易、国际投融资。 国际经济合作等课程引发了我深深的思考。 在学习专业课程之时,阅读经济学名著是课余的一大爱好。 从经济学之父亚当斯密的《国富论》到熊彼特的《经济发展理论》再到迈克尔波特的《竞争战略》,经济学的分析方法及范式深深的让我折服。