FTP 协议
FTP是FILE TRANSFER PROTOCOL(文件传输协议)的缩写,用来在两台计算机之间互相传递文件
FTP协议有两种工作方式:
PORT方式和PASV方式,即主动式和被动式
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令连路。当需要传送数据的时候,服务器从20端口向客户端发送连接请求,建立一条数据连路来传送数据
PASV(被动)方式连接的过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令连路。当需要传送数据的时候,客户端向服务器的空闲端口发送连接请求,建立一条数据连路来传送数据
因为PORT方式在传送数据的时候由服务器主动连接客户端,所以如果客户端在防火墙或NAT网关后面的话,PORT方式将无法与internet上的FTP服务器传送文件。这种情况要使用PASV方式。几乎所有的FTP客户端软件都支持这种方式
Nmftp 组件
因为在 DELPHI6 中位于Fastnet组件面板上的NMFTP组件封装了FTP协议,所以我们可以不用详细了解这个协议就能够编写基于FTP协议的应用程序。
Nmftp 组件的主要属性
CurrentDir属性:指定远程系统上的当前目录
ParseList属性:用于打开或关闭解析目录功能
vendor属性:在运行list命令的时候,运用哪种格式解析目录
Nmftp 组件的主要方法
Abort方法:取消正在进行的上传或下载过程
allocate方法:用来在预先分配空间的文件系统分配字节。
ChangeDir方法:用来改变工作目录
Download方法:用来下载文件到本机
Upload方法:用来上传文件
List方法:用来获得远程服务器上的目录列表
MakeDirectory方法:用来在远程FTP上创建目录
Mode方法:用来改变传输模式
Nlist:用来获得当前目录的文件名列表
Reinitialize方法:用来重新初始化连接
RemoveDir方法:用来删除FTP服务器上的目录
Rename方法:用来更改服务器上的文件的名称
Nmftp 组件的主要事件
OnlistItem事件:当调用LIST或者NLIST方法的时候触发这个事件
Onsuccess:当命令被成功运行之后发生这个事件