1、I摘 要目前网络上的 FTP 服务器站点很多,但由于每个 FTP 服务器的防火墙设置不同,对于 FTP 客户机来说,就需要发一个命令,然后根据服务器反馈的信息,设置不同的登录方式,从而达到对不同的防火墙能够实现登录访问的功能。其次,多线程具有实现进程并行计算、节省内存空间、减少系统管理开销、快速切换、线程通信易于实现等优点,从而在有效利用系统资源和保证用户之间可靠通信等方面提供了可能并提高了系统的运行效率。本文对 FTP 的概念、相关命令、工作原理以及多线程的关键技术、内部机制进行了研究,并且在这基础上实现了基于 Windows Socket 的多线程 FTP 软件下载系统。实现代码它分为五个
2、模块:初始化函数模块、连接服务器模块、多线程模块、下载文件模块和断开连接模块。该系统每个过程都用一个线程实现所以可根据用户的选择来进行文件的下载、上传、删除及重命名等操作,并且在用户登录及数据传输的过程中能够在运行界面显示相应的会话信息。最后运用所设计的系统对某些 FTP 服务站点进行了访问,并对服务器中的文件进行了成功下载并且达到了较快的下载速度。对内存和 CPU 使用率的测试结果表明该系统具有较好的性能。关键词:FTP,Socket,多线程, 进程湖南工业大学本科毕业设计(论文)II目 录第 1章 引言 11.1 本课题研究背景 11.2 本课题研究现状 21.3 论文内容组织 2第 2章
3、 理论基础及相关协议 42.1 FTP 协议及工作原理 .42.1.1 FTP 概念 .42.1.2 数据传输功能 62.1.3 文件传输功能 92.1.4 FTP 基本工作原理 132.2 典型的 FTP 工作流程 .152.3 FTP 相关的网络协议 162.4 WINSOCK编程原理 .162.5 小结 .18第 3章 多线程下载 .203.1 线程概念的引入 .203.2 线程与进程 .203.3 多线程技术 .223.3.1 线程的启动 .223.3.2 线程的调度 .223.3.3 优先度的控制 .233.3.4 线程的悬挂和恢复 .243.3.5 结束线程 .243.4 线程之间
4、的同步 .243.4.1 临界区 .243.4.2 互斥 .253.4.3 信号机 .253.5 本章小结 .25第 4章 多线程 FTP软件下载系统 .264.1 设计目标及设计思想 .264.1.1 FTP 客户端的设计目标 264.1.2 设计思想 .26湖南工业大学本科毕业设计(论文)III4.1.3 UML 建模分析 274.2 FTP 客户端框架 284.3 设计方案 .304.4 解决方案 .314.4.1 框架资源的设计 .314.4.2 实现代码的设计 .324.4.2.1 初始化函数代码 .324.4.2.2 连接服务器函数代码 .334.4.2.3 上传或下载文件函数代码
5、 .344.4.2.4 多线程下载 364.4.2.5 断开连接函数代码 374.5 本章小结 .38第 5章 功能及性能测试 .395.1 功能测试 .395.2 FTP 性能测试 415.3 本章小结 .42结 论 43参考文献 .45致 谢 .464上述函数为程序读取本地默认目录下的文件列表信息做好了准备,接下来程序调用 OnInsertFile() ,函数,将获得的信息存储在文件信息结构体 pInfo 中,最后显示该文件信息到本地驱动器的列表框中。用,如图 5.5 为用 netstat 查看端口号的示意图。图 5.2 运行界面图 5.3 点击右键进行选择下载5图 5.4 成功下载界面图 5.5 netstat 命令查看服务器端控制信道端口5.2 FTP 性能测试开启 FTP 客户端并下载文件,在此过程当中查看任务管理器中的进程与性能。可从图中看到进程中的内存使用率为 3,240K,CPU 的利用率不会超过 3%。具有较好的性能。6图 5.6 进程图图 5.7 CPU 利用率5.3 本章小结本章从功能测试和性能测试两方面进行介绍。可看到该系统已基本实现课题要求,能正确连接服务器并登录下载。并且 CPU 利用率表现良好。7重要提示:本论文由大学论文网 毕业论文下载网: 提供如果需要详细内容请与 QQ:4991024 联系