文档详情

第10章 FTP编程:FTP服务器实例.ppt

发布:2017-06-21约4.6千字共25页下载文档
文本预览下载声明
10.1 FTP原理 10.2 FTP服务器的实现 10.3 完整的FTP软件套件 10.1.1 FTP简介 在Internet上有大量的FTP服务器,提供了非常丰富的各种资源。因此,即使Web广泛使用的今天,FTP仍然是Internet最主要的应用之一,尤其在校园网、企业网等各种局域网络中,FTP几乎就是传输网络资源的首选方式,这也使得它成为文件传输的代名词。 1.文件类型 FTP可以使用的文件类型有以下4种。 (1)ASCII码文件。 (2)EBCDIC码文件。 (3)图像(Image)文件。 (4)本地(local)文件。 2.文件的数据结构 (1)文件结构。 (2)记录结构。 (3)页结构。 3.文件的传输方式 (1)流方式。 (2)块方式。 (3)压缩方式。 以客户要从FTP服务器上下载一个文件为例,说明FTP的完整工作过程。其工作原理可用图10.2表示。 1.启动FTP 用户通过GUI界面操作客户端软件,执行启动FTP的用户交互式命令。 2.建立控制连接 客户端TCP层根据用户命令中给出的服务器IP地址,向服务器提供FTP服务的21端口发出主动建立连接的请求。服务器收到请求后,通过3次握手,在进行FTP命令处理的用户协议解释器进程和服务器协议解释器进程之间建立一条TCP连接。以后所有用户输入的FTP命令和服务器的应答都由该连接进行传输,因此把它叫做控制连接。 3.建立数据连接和进行文件传输 (1)首先在客户端请求分配一个临时的TCP端口号。 (2)然后在客户端由客户协议解释器通过控制连接向服务器协议解释器发送两条命令:一条命令(使用PORT命令)是把客户端的IP地址和申请到的临时端口号这两个参数告诉给服务器协议解释器;另一条命令是把服务器上某文件传输到客户端的服务请求。 (3)服务器协议解释器收到客户端的IP地址和临时端口号后,以该IP地址和端口号为目标,使用服务器的20端口(TCP层用于传输数据的端口)向客户发出主动建立连接的请求。 (4)客户收到请求后,通过3次握手在客户数据传输进程和服务器数据传输进程之间建立一条TCP连接,下面的传输文件就通过这个连接进行,由于它是建立用来专门传输数据的,因此把它叫数据连接。 (5)服务器的数据传输进程从它的文件系统中找到客户进程请求传输的文件。 (6)服务器的数据传输进程通过数据连接把该文件发送到用户数据传输进程。 (7)用户数据传输进程把该文件交给客户端文件系统进行存储。 (8)文件传输完成后,由服务器端主动关闭该数据连接。 4.关闭FTP 当用户要退出FTP站点时通过客户端发出退出FTP的交互式命令,控制连接被关闭,FTP服务结束。 当客户要向服务器上传一个文件或客户要求查看服务器文件列表时也要建立相应的数据连接。因此在下列3种情况下都需要在客户和服务器之间自动建立数据连接。 ? 从客户向服务器发送一个文件。 ? 从服务器向客户发送一个文件。 ? 从服务器向客户发送文件目录列表。 1.FTP命令 FTP命令都是由3个或4个大写ASCII码字符组成,表10.1列出了FTP命令,共分为3大类。 2.FTP应答 FTP命令的应答是服务器对FTP命令执行情况的响应,它主要有两方面的功能:一是服务器为了对数据传输的请求和过程进行同步,这是TCP所要求的,TCP要求对接收到的数据都要进行确认;二是为了让用户了解服务器的状态,用户可以根据收到的状态信息对服务器是否正常执行了有关操作进行判断。详细内容见表10.2。 应 答 说 明 第 一 位 数 字 lyz 肯定预备应答。它仅仅是在发送另一个命令前期待另一个应答时启动 2yz 肯定完成应答。一个新命令可以发送 3yz 肯定中介应答。该命令已被接受,但另一个命令必须被发送 4yz 暂时否定完成应答。请求的动作没有发生,但差错状态是暂时的,所以命令可以过后再发 5yz 永久性否定完成应答。命令不被接受,并且不再重试 第 二 位 数 字 x0z 语法错误 xlz 信息 x2z 连接。应答指控制或数据连接 x3z 鉴别和记账。应答用于注册或记账命令 x4z 未使用 x5z 文件系统状态 10.2.1 项目工程的架构 首先创建VC项目工程,工程名为ftpSrver(“基于FTP协议的服务器”之意)。设计程序界面如图10.3所示。 向工程中添加MFC类CAccountDlg,并设计对话框界面,如图10.4所示。 GUI界面上的各控件关联变量见表10.3和表10.4。 变 量 控 件 Control Value “服务IP” 地址控件 ServerIP — “端口”文本框 CEDITPORT m_EditPort “用户登记”列表控件 CLISTACCOUNT — “服务器状
显示全部
相似文档