FTP客户机程序设计.doc
《FTP客户机程序设计.doc》由会员分享,可在线阅读,更多相关《FTP客户机程序设计.doc(44页珍藏版)》请在沃文网上搜索。
1、摘要摘 要互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。 本论文的主要工作集中在:学习了解TCP/IP协议和文件传输协议、了解和掌握FTP的工作原理及网络编程原理、熟悉Visual Studio 2005开发工具的使用利用C+语言设计和实现FTP客户端。FTP客户端分为连接模块和文件传输模块。连接模块实现主机与服务器的连接的功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。本次设计使用流行的C+作为此次设计的开发语言,并采用C/S结构作为
2、FTP的网络结构,论文首先对MFC和C+语言做了简要说明,然后介绍了FTP相关的概念及其FTP的工作原理,最后全面的介绍了FTP客户端的设计、实现以及功能的测试。关键词:C+ 网络编程 文件传输协议 客户Abstract The predominant characteristic of network is information resources sharing. Document transmission is an important component element. Because of this, many File Transfer Protocol (FTP) serve
3、rs appeared, and won its way into favor.This thesis work focuses on: learning to understand TCP / IP protocol and file transfer protocol, understanding and knowledge of FTP works and network programming principle, familiar with Visual Studio 2005 development tools used by C+ language design and impl
4、ementation of FTP client. FTP client and file transfer into connector module. Connection module connected to the host and server functions; file transfer module, after a successful connection with the server host to upload and download files function.The design using the popular C + + as the design
5、of the development of language, and using C/S structure as FTP, network structure, the paper first, MFC and C+ language gives a brief description, and then introduced the FTP-related concepts and FTP, Works, the last comprehensive introduction to the FTP clients design, implementation, functional te
6、sting.Key words: C+ Network Programming File Transfer Protocol Client 目录i目 录第一章 绪论11.1 课题背景11.2 国内外研究现状11.3 本课题研究的研究方法及意义21.4 论文的组织结构2第二章 技术背景52.1 开发语言选择52.2 MFC简介52.3 套接字简介62.3.1 流式套接字72.3.2 数据报套接字72.3.3 原始套接字82.4 FTP简介82.4.1 FTP工作原理92.4.2 FTP工作模式112.4.3 FTP命令与FTP响应信息142.5 小结17第三章 FTP软件需求分析193.1 环境
7、需求193.2 需要完成目标193.3 功能需求193.4 小结20第四章 FTP软件设计与实现214.1 框架资源的设计214.1.1 编辑对话框资源214.1.2 添加新类和编辑各类的成员变量及函数214.2 代码的实现224.2.1 初始化函数代码224.2.2 连接服务器函数代码254.2.3 上传或下载文件函数代码264.2.4 断开连接函数代码274.3 小结29第五章 运行与测试315.1测试截图315.2 小结34第六章 结束语35致 谢37参考文献391第一章 绪论3第一章 绪论第一章 绪论从1946年,第一台计算机的诞生,到1969年美国国防部的国防高级研究计划局(DARP
8、A)建立了世界上第一个分组交换网(ARPARENT),再到现在计算机网络应用到各行各业,走进我们的生活,计算机网络技术的发展速度可谓一日千里。随着计算机技术的发展,特别是计算机网络的发展,人类对它依赖程度越来越高,大量的网络资源如何使更多的人能够很好的共享,这也是计算机网络发展至今的伟大意义。1.1 课题背景FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。如果用户想使用其它计算机上的文件,
9、最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。全世界现在已有不少FTP文件服务器对所有INTERNET用户开放使用,用户可以通过与Internet相连到远程计算机,把自己需要的文件传输过来或是把自己的收集传输上去与他人共享。传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性、高效的用户界面等优点。1.2 国内外研究现状1971年,第一个FTP的RFC(RFC 114)由A.K.Bhushan在1971年
10、提出,同时由MIT与Harvard实验实现;1972年,RFC 172 提供了主机间文件传输的一个用户级协议;1973年2月,在长期讨论(RFC 265,RFC 294,RFC 354,RFC 385,RFC 430)后,出现了一个官方文档RFC 454;1973年8月,出现了一个修订后的新官方文档 RFC 542,确立了FTP的功能、目标和基本模型。当时数据传输协议采用NCP;1980年,由于底层协议从NCP改变为TCP,RFC 765 定义了采用TCP的FTP;1985年,一个作用持续至今的官方文档RFC 959(STD 9)出台。用FTP传输文件,本来用户事先应在远方系统注册,但后来为了
11、便于大家获取资源,FTP在互联网上有一种特殊的也是非常广泛的应用是匿名FTP (anonymous FTP)。通过Internet,任何用户可以使用FTP和一个公用账号(通常账号名是anonymous)去获得一些公用资源。在Internet上目前有许许多多的这种公用计算机,我们把这种用来做匿名FTP服务的计算机称作FTP服务器(FTP Server),对每一个联入Internet的用户,只要知道这些FTP服务器的地址,就可以与它们连接并获取上面各种资源。由于FTP操作简单实用,开放性强,且能充分利用Internet来进行信息传递与交流,所以目前越来越多的FTP服务器连入Internet,这样越
12、来越多的资源就可以通过匿名FTP来获得。1.3 本课题研究的研究方法及意义进一步熟悉Microsoft Visual Studio 2005开发环境,掌握一定开发Windows应用程序技术。对提高自己的C+语言编程能力,熟悉FTP原理及其它的工作过程。制作一个简单友好界面,快速,稳定的应用软件。对信息的快速共享起着一定的作用。让用户能第一时间和别人共同分享信息资源。同时对软件的开发流程有一定的了解。用Microsoft Visual Studio 2005开发FTP客户端软件。根据现有的FTP软件进行设计与实现。综合以前所学的相关知识:包括计算机网络技术、TCP/IP详解、信息安全相关知识等;
13、查阅Windows应用程序开发资料,学习C+语言,FTP通信过程。1.4 论文的组织结构本论文共分六章,各章节的内容安排如下:第一章 绪论:对本论文研究的背景、现状、意义。第二章 技术背景:首先对套接字进行简单的阐述,接着介绍了微软基础类库(MFC:Microsoft Foundation Class)、.NET技术、C+语言、FTP的工作原理、工作模式,最后介绍了常用的FTP命令及响应码。第三章 FTP软件需求分析:环境需求和从用户角度的功能需求。第四章 FTP软件详细设计与实现:一开始先介绍此架构资源的设计,接下来代码的实现。第五章 运行与测试:以明了的图形和文字注释对运行结果和相关的测试
14、进行了罗列。第六章 结束语:先总结了此论文的研究结果及还存在的不足,最后是通过本次毕业设计的收获。17第二章 技术背景第二章 技术背景2.1 开发语言选择C+ 是一种现代的面向对象的程序开发语言。C+之所以是一种倍受欢迎的语言,原因之一就在于它可以通过类库来进行扩展。有一些类库时随编译器一起提供的,还有一些是由其他软件公司销售的,另有一些则是有用户自己开发的。类库是一个可以在应用程序中使用的相互关联的C+类的集合。C+ 能够如此成功,部分原因是它的目标不只是为了将C语言转变成面向对象程序设计语言(虽然这是最初的目的),而且还为了解决当今程序员,特别是那些在C语言中已经大量投资的程序员所面临的许
15、多问题。人们已经对面向对象语言有了这样传统的看法:程序员应当抛弃所知道的每件事情并且从一组新概念和新文法重新开始,他应当相信,最好丢掉所有来自过程语言的老行装。从长远角度看,这是对的。但从短期角度看,这些行装还是有价值的。最有价值的可能不是那些已存在的代码库(给出合适的工具,可以转变它),而是已存在的头脑库。作为一个职业C程序员,如果让他丢掉他知道的关于C的每一件事,以适应新的语言,那么,几个月内,他将毫无成果,直到他的头脑适应了这一新范例为止。如果他能调整已有的C知识,并在这个基础上扩展,那么他就可以继续保持高效率,带着已有的知识,进入面向对象程序设计的世界。因为每个人有他自己的程序设计模型
16、,所以这个转变是很混乱的。因此, C + +成功的原因是经济上的:转变到面向对象需要代价,而转变到C + +所花的代价较小。C + +的目的是提高效率。效率取决于很多东西,而语言是为了尽可能地帮助使用者,尽可能不用武断的规则或特殊的性能妨碍使用者。C + +成功是因为它立足于实际:尽可能地为程序员提供最大便利。2.2 MFC简介微软基础类库(MFC:Microsoft Foundation Class)是微软为Windows程序员提供的一个面向对象的Windows编程接口,它大大简化了Windows编程工作。使用MFC类库的好处是:首先,MFC提供了一个标准化的结构,这样开发人员不必从头设计创
17、建和管理一个标准Windows应用程序所需的程序,而是“站在巨人肩膀上”,从一个比较高的起点编程,故节省了大量的时间;其次,它提供了大量的代码,指导用户编程时实现某些技术和功能。MFC库充分利用了Microsoft开发人员多年开发Windows程序的经验,并可以将这些经验融入到你自己开发的应用程序中去。对用户来说,用MFC开发的最终应用程序具有标准的、熟悉的Windows界面,这样的应用程序易学易用;另外,新的应用程序还能立即支持所有标准Windows特性,而且是用普通的、明确定义的形式。事实上,也就是在Windows应用程序界面基础上定义了一种新的标准MFC标准。Microsoft提供了一个
18、基础类库MFC,其中包含用来开发C+和C+ Windows应用程序的一组类。基础类库的核心是以C+形式封装了大部分的Windows API。类库表示窗口、对话框、设备上下文、公共GDI对象如画笔、调色板、控制框和其他标准的Windows部件。这些类提供了一个面向Windows中结构的简单的C+成员函数的接口。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这
19、个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。 2.3 套接字简介为了能够方便地开发各种网络应用程序,美国伯克利大学为UNIX操作系统开发了一种网络编程接口,它是一种使应用程序可以访问通信协议的系统调用,也就是我们经常说的套接字(Socket)。套接字屏蔽底层通信软件和具体操作系统的差异,使任何两台安装TCP/IP协议软件的计算机之间可以通信。随着UNIX操作系统与T
20、CP/IP协议的广泛应用,套接字在编写网络应用程序中得到普及。后来,套接字被引入Windows等操作系统,逐渐发展成当前最流行的网络编程接口。套接字存在于某个通信区域中。通信区域又称为地址族(Address Family),它是一个抽象的概念,用于将通过套接字通信的应用进程的共同特性综合起来。一般来说,相同的通信区域中的套接字可以交换数据,跨区域通信则需要执行某种转换后才可以。为了实现不同计算机的应用进程之间的通信,TCP/IP协议在全网范围内唯一地标识一个进程,这时需要使用网络层的IP地址与传输层的端口,它们共同构成一个套接字的主要结构。套接字可以支持不同的通信协议与网络应用类型。不同的通信
21、协议针对的是不同类型的网络。BSD Socket支持多种类型的协议族,包括TCP/IP、Xerox、Novell与AppleTalk等。最初版本的Windows Socket(即Winsock)只支持IPv4协议(即常说的IP协议),新版本的Winsock开始支持更多协议类型。目前,常见的套接字主要有3种:流式套接字、数据报套接字与原始套接字,它们分别针对不同类型的网络应用。2.3.1 流式套接字流式套接字(SOCK_STREAM)提供面向连接的、可靠的数据传输服务,实际上它是基于TCP/IP协议族中的TCP协议实现的。流式套接字提供有序、无差错与无重复的数据流服务。流式套接字的设计是针对面向
22、连接的网络应用,在数据传输之前需要预先建立连接,在数据传输过程中需要维持连接,在数据传输结束后需要释放连接。由于采用校验和、确认与超时等差错控制手段,因此流式套接字可以保证数据传输的正确性。2.3.2 数据报套接字数据报套接字(SOCK_DGRAM)提供无连接的、不可靠的数据传输服务,实际上它是基于TCP/IP协议族中的UDP协议实现的。数据报套接字提供无序、有差错与有重复的数据流服务。数据报套接字的设计是针对无连接的网络应用,在数据传输之前不需要预先建立连接。由于只采用很有限的差错控制手段,因此数据报套接字无法保证数据传输的正确性。2.3.3 原始套接字原始套接字(SOCK_RAW)提供对网
23、络层协议(例如IP、ICMP与IGMP等)的访问。原始套接字可以保存IP数据包中完整的头部。前两种套接字不保留IP数据包的头部,而只是存储或转发那些接收到的数据包。如果需要分析IP数据包的头部,可以使用原始套接字进行网络编程。2.4 FTP简介FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件到自己的计算机上,称之为“
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FTP 客户机 程序设计
