当前位置:文档之家› (精)FTP协议(指令集)

(精)FTP协议(指令集)

feat命令是用来请求FTP服务器列出它的所有的扩展命令与扩展功能的

FTP协议(指令集)

目录(?)[-]

1. ABOTAbort中止命令

2. ACCTAccount帐号命令

3. ALLOAllocate分配命令

4. APPEAppend with create附加和创建命令

5. CDUPChange to Parent Directory变为父目录命令

6. CWDChange Working Directory改变工作目录命令

7. DELEDelete删除命令

8. HELPHelp帮助命令

9. LISTList列表命令

10. MKDMake Directory 创建目录命令

11. MODETransfer Mode传输模式命令

12. NLSTName List名称列表命令

13. NOOPNOOP无操作命令

14. PASSPassword密码命令

15. PASVPassive被动的命令

16. PORTData Port数据端口命令

17. PWDPrint Working Directory打印工作目录命令

18. QUITLogout注销命令

19. REINReinitialize重新初始化命令

20. RESTRestart重新启动命令

21. RETRRetrieve检索命令

22. RMDRemove Directory删除目录命令

23. RNFRRename From把重命名命令

24. RNTORename TO重命名为命令

25. SITESite Parameters站点参数命令

26. SMNTStructure Mount结构装配命令

27. STATStatus状态命令

28. STORStore保存命令

29. STOUStore Unique存为唯一命令

30. STRUFile Structure文件结构命令

31. SYSTSystem系统命令

32. TYPERepresentation Type表达类型命令

FTP协议采用一系列简单的协议来完成文件传输的各种任务,在发送命令的时候,总是在命令的最后加上一个回车换行符,在VB中可以用“vbcrlf”来实现,vc中以“/r/n”表示。以下的命令是从Postel和Reynolds所著的RFC 929修改而来,如果读者想查看详细内容,可以参见英文版RFC 929。注意以下出现地标志符CRLF表示的是回车符号,即相当于VC中的“/r/n”。

1. ABOT(Abort,中止)命令

说明:告诉服务器中止上一次FTP服务命令及所有相关的数据传输。

用法:ABOR﹝CRLF﹞

参数:无。

例子:SendData "ABOR" + “/r/n”

注释:中止命命令可以请求“特殊操作”以强行引起服务器的重视(详情请参看RFC959)。如果上一次命令已经完成(包括数据传输),就不会导致任何操作。服务器不会关闭控制连接,但必须关闭数据连接。

服务器在接收到此命令时可能处于两种状态下:(1)FTP服务命令已经完成,(2)FTP服务命令尚在处理中。

在第一种状态下,服务器关闭数据连接(如果它是打开的)并响应以226应答,表示已成功执行了中止命令。

在第二种状态下,服务器中止正处理中的FTP服务并关闭数据连接,返回426应答,表示该服务请求被异常终止。然后服务器发送226应答,表示成功执行了中止命令。

●225 数据连接打开,没有正在进行的传输

●226 关闭数据连接,请求的文件操作成功。

●421 服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

●226 连接关闭,传输终止。

●500 语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

●501 参数或变元中有语法错误。

●502 命令还没有被实现。

2. ACCT(Account,帐号)命令

说明:指定用户的帐号信息。这条命令只能在发送PASS命令并接收到332代码之后发送。

用法:ACCT

参数:Account是用户的帐号,访问某些服务时可能另外需要它。

例子:SendData "ACCTN322s" + “/r/n

注释:当登录需要帐号信息时,一条成功的PASS命令的响应是应答代码332。反之,如果登录不需要帐号信息,成功的PASS命令的应答是230;如果在对话中后来发出的命令需要帐号信息,服务器会返回332或532应答,这分别取决于它是保存(在接收ACCT命令期间)还是丢弃此命令。

返回值(粗体表示成功):

●202 命令还没有被实现,在此站点上是多余的。

●230 用户已登录,请继续。

●421 服务不可用,关闭控制连接。

如果某项服务获知自己即将关闭,会向所有命令做出这个应答。

●500 语法错误,无法识别命令。

这其中包括命令行过长之类的错误。

●501 参数或变元中有语法错误。

●502 命令还没有被实现。

●503 命令的顺序不对。

●530 无法登录。

3. ALLO(Allocate,分配)命令

说明:发送文件前在服务器上分配X个字节

用法:ALLO]

参数:NumberBytes是一个整数,代表为该文件保留的内存字节数(使用逻辑字节大小计算)。MaxSize是在使用记录或页数据结构时可选的最大记录或页大小。

例子:SendData "ALLO 3000 128" + “/r/n

注释:一些要保留足够内存以容纳将要传输的新文件的服务,会请求这条命令。对于用记录或页结构发送的文件来说,最大记录或页大小(以逻辑字节计)也可能是必需的;它以这条命令的第二个参数字段中的十进制整数表示。这第二个参数是可选的,但在出现时应该与第一个参数三个ASCII字符P分隔开。这条命令后跟一条STORe或APPEnd命令。那些不要求事先声明最大文件大小的服务器应该把ALLO命令视为NOOP(不操作),而那些只关心最大记录或页大小的服务器应该受第一个参数的值,然后忽略它。

返回值(粗体表示成功):

●200 命令成功。

●202 命令还没有被实现,在此站点上是多余的。

●421 服务不可用,关闭控制连接。

如果某项服务获知自己即将被关闭,会向所有命令做出这个应答。

●500 语法错误,无法识别命令。

这其中包括命令行过长之类的错误

●501 参数或变元中有语法错误

●504 命令中还没有实现该参数

●530 无法登录。

4. APPE(Append with create,附加和创建)命令

说明:让服务器准备接收一个文件并指示它把这些数据附加到指定的文件名,如果指定的文件尚未存在,就创建它。

用法:APPE

参数:FileName是服务器站点上一个完全合格的路径和文件名。

例子:SendData "APPE" & szFileName + “/r/n

返回值如下(粗体表示成功)。

●110 重新启动标记应答。

在此情况下,文本是精确的,而且不会留给特殊的实现处理;它必须读取:MARK yyyy=mmmm

其中yyyy是用户进程的数据流标记,mmmm是服务器上的相应标记(请注意标记和“=”之间的空格)。

●125 数据连接已打开,传输启动。

●150 文件状态没问题,准备打开数据进行连接。

●226 关闭数据连接,请求的文件操作已成功。

●250 请求的文件操作没问题,已完成。

●421 服务不可用,关闭控制连接。

相关主题