FTP客户端设计与实现

上传人:壹****1 文档编号:498727648 上传时间:2023-08-13 格式:DOC 页数:20 大小:123KB
返回 下载 相关 举报
FTP客户端设计与实现_第1页
第1页 / 共20页
FTP客户端设计与实现_第2页
第2页 / 共20页
FTP客户端设计与实现_第3页
第3页 / 共20页
FTP客户端设计与实现_第4页
第4页 / 共20页
FTP客户端设计与实现_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《FTP客户端设计与实现》由会员分享,可在线阅读,更多相关《FTP客户端设计与实现(20页珍藏版)》请在金锄头文库上搜索。

1、学号:2007840121本 科 毕 业 论 文(设 计)FTP客户端设计与实现作者姓名刘 青指导教师袁 军所学专业计算机科学与技术班级07计B1所属院系信息学院学习年限2007年9月至2010年7月二 年月山西大学商务学院学士学位论文目 录FTP 客户端的设计与实现I1. 引言12. FTP协议简介13. FTP工作模式24. FTP 传输模式25 FTP客户端总体设计36.需求分析37.详细设计48所遇到的问题和分析解决137系统特色及关键技术138结语143FTP 客户端的设计与实现学生姓名:刘 青指导教师:袁 军内容提要 FTP 是Internet 上用来传送文件的协议。它是为了我们能

2、够在Internet 上互相传送文件而制定的文件传送标准,规定了Internet 上文件如何传送。通过FTP 协议,我们就可以跟Internet 上的FTP 服务器进行文件的上传或下载。本文以实现一个简单易用的FTP 客户端为目标,通过分析FTP 协议的基本工作原理和FTP 的数据传输原理,研究如何使用C工具对FTP 客户端进行设计。关键词 FTP客户端 C 上传下载I山西大学商务学院本科毕业论文(设计)1. 引言FTP是TCP/IP协议组中的协议之一,是英文FileTransferProtocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享

3、性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。用FTP将信息下载到本地是一件十分普遍的事。也随之出现了许多下载软件。尽管远程登录提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。假如用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。FTP正是完成这项工作的工具。2. FTP协议简介FTP(File Transfer Protocol)意为文件传输协议,它允许用户在Internet的一台主机和另一台主机之间进行发送

4、和接收文件,是Internet上使用非常广泛的一种通讯协议。它是由支持Internet文件传输的各种规则所组成的集合,这些规则使 Internet用户可以把文件从一个主机拷贝到另一个主机上,因而为用户提供了极大的方便和收益。通常我们把采用这种协议的应用程序也称为FTP。FTP通常用于将网页从创作者上传到服务器上供人使用或者从服务器上下传文件,极大地促进了网络文件的资源共享。从根本上说,FTP协议就是在网络中各种不同的计算机之间按照TCP/IP协议来传输文件。FTP协议采用客户机/服务器 (Client/Sever)模式,由FTP客户端程序和FTP服务器端程序组成。使用时,先启动FTP客户端程序

5、与远程主机建立连接,然后向远程主机发出传输命令,远程主机在收到命令后就给予响应,并执行正确的命令。但是FTP有一个根本的限制,那就是,如果用户在某个主机上没有注册获得授权,即没有用户名和口令,就不能与该主机进行文件传输。但匿名FTP服务器除外,它能够使用户与远程主机建立连接并以匿名身份从远程主机上拷贝文件,而不必是该远程主机的注册用户。用户使用特殊的用户名“Anonymous”或“guest”就可有限制地访问远程主机上公开的文件。现在许多系统要求用户将Emai1地址作为口令,以便更好地对访问者进行跟综。出于安全的目的,大部分匿名FTP主机一般只允许远程用户下载(download)文件,而不允许

6、上载(upload)文件。也就是说,用户只能从匿名FTP主机拷贝其需要的文件而不能把文件拷贝到匿名FTP主机。另外,匿名FTP主机还采用了其他一些保护措施以保护自己的文件不至于被用户修改和删除,并防止计算机病毒的侵入。匿名FTP一直是Internet上获取信息资源的最主要方式,在Internet成千上万的匿名FTP主机中存储着无以计数的文件,这些文件包含了各种各样的信息、数据和软件。人们只要知道特定信息资源的主机地址,就可以用匿名FTP登陆。3. FTP工作模式FTP采用C/S(客户机/服务器)模式进行通信,但与其他的C/S模式网络通信协议又有一个很大的区别。通常在进行HTTP通信或是TELN

7、ET通信的时候,只需要一个端口进行通信。即客户端只需要连接一个端口进行数据通信。如TELNET的默认端口时23,用户从头到尾都只需和这个端口打交道。但是FTP通信除了有一个默认端口21之外,还需要其他的端口。其中默认端口(21)主要进行控制连接,进行命令协议和服务器端的响应码的传输;另外一个非标准端口主要进行数据传递,如文件的上载、下载等。至于非标准端口的产生则要根据用户选择的连接模式而定:如果客户选择的是主动模式(PORT),则需要用户端提供给服务器一个IP地址和一个非标准端口;而如果用户采用被动模式(PASV),则服务器端需要提供给客户端一个IP地址和一个非标准端口。4. FTP 传输模式

8、FTP 协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp 协议对话,并且能访问Internet,你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。4.1 ASCII传输方式假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在

9、传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理。4.2 二进制传输方式在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢,也会损坏数据,使文件变得不能用。

10、如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。5 FTP客户端总体设计本系统实现了一个简单的ftp客户端,能够列出/更改目录,实现上下传文件,显示文件列表等选项。程序在windows环境下,通过VC+语言编写实现。界面简洁大方,思路清晰,方便用户的操作。功能简便快捷。在实现FTP客户端程序的代码中,主要分为1. 连接治理模块:主要完成主机与服务器之间的连接与关闭操作。2.文件治理模块:主要完成文件的显示、新建文件、删除文件等。3.文件传输模块:主要完成主机与服务器连接成功以后文件的上传与下载。6.需求分析6.1系统需求可以安装在 微软 Windows 98/Me/N

11、T/2000/Me/XP/2003/Vista CPU Pentium III 800 128M 内存 10M 磁盘空间 6.2开发工具此次的开发工具为QT Designer;QT 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有下列优点:1. 优良的跨平台特性: Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OS

12、F/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。 2. 面向对象 Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。 3. 丰富的 API Qt 包括多达 250 个以上的 C+ 类,还替供基于模板的 collections, serialization, file, I/O device, directory management, date/t

13、ime 类。甚至还包括正则表达式的处理 功能。4. 支持 2D/3D 图形渲染,支持 OpenGL5. 大量的开发文档6. XML 支持7.详细设计7.1 客户端与服务器连接FTP是建立在TCP之上的连接,端口号使用21。若客户端与服务器之间成功连接,获得服务器根目录的所有文件并在列表框中显示。/连接ftp服务器void CMyFtpDlg:OnConnect() UpdateData(TRUE);/新建对话m_pInetSession=new CInternetSession(AfxGetAppName(),1,PRE_CONFIG_INTERNET_ACCESS);try /新建连接对象m

14、_pFtpConnection=m_pInetSession-GetFtpConnection(m_strServer,m_strUserName,m_strPassword); catch(CInternetException *pEx) /获取错误TCHAR szError1024;if(pEx-GetErrorMessage(szError,1024)AfxMessageBox(szError);else AfxMessageBox(There was an exception);pEx-Delete();m_pFtpConnection=NULL;return;m_pRemoteFin

15、der = new CFtpFileFind(m_pFtpConnection);/获得服务器根目录的所有文件并在列表框中显示BrowseDir(,&m_ctrlRemoteFiles,m_pRemoteFinder,&m_arrRemoteFiles);7.2获取目录与显示在建立的列表框中,显示出远程计算机目录和本地计算机目录。如目录下仍然有子文件,则在点击“下一层”按钮后,列表框显示该文件的子文件,如该文件已经是文件,那么则不变。/初始化两个列表框控件SetListCtrlStyle(&m_ctrlLocalFiles);SetListCtrlStyle(&m_ctrlRemoteFiles);AddHeaders(&m_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号