网上转过来
Ftp协议:RPC959
命令和返回码:
C-->S:命令
S-->C:返回码
每一个Ftp发送之后,Ftp服务器都会返回一个字符串,其中包括一个返回代码和一串说明信息。这个返回码主要是用于判断命令是否被成功执行了。除此之 外,还有一个非常重要的命令的返回。当发送PASV之后,返回“227 Entering Passive Mode (127,0,0,1,4,18)”。这意味着在服务器上有一个端口被开放,他将为我们后面接着的数据传输作好准备,但是我们如何知道该端口号呢,就在 (127,0,0,1,4,18)中,前面四位指服务器的地址,关键是最后两位,将最后第二位乘256再加上最后一位的值就是我们的端口号,也就是 4*256+18。取得端口号之后我们就可以用socket连接到这里。这为我们后面的工作作好准备了,因为我们的取得列表,上传,下载文件都要依靠它来 实现。
一个非典型的ftp交互实例:
Response: 220 Gene6 FTP Server v3.10.0 (Build 2) ready...
Request: USER anonymous
Response: 331 Password required for anonymous.
Request: PASS notexist.com
Response: 230 User anonymous logged in.
Request: CWD board
Response: 250 CWD command successful. "/board" is current directory.
Request: TYPE I
Response: 200 Type set to I.
Request: SIZE 4saac062.zip
Response: 213 248288
Request: RETR 4saac062.zip
Response: 150 Data connection accepted from x.x.x.x:2841; transfer starting for /board/4saac062.zip (248288 bytes)
FTP命令:
灰色的命令一般很少使用,所以往往在具体实现中不被支持,所以可能返回的信息是“500 'xx': command not understood”。
命令 描述
ABOR 中断数据连接程序
ACCT <account> 系统特权帐号
ALLO <bytes> 为服务器上的文件存储器分配字节
APPE <filename> 添加文件到服务器同名文件
CDUP <dir path> 改变服务器上的父目录
CWD <dir path> 改变服务器上的工作目录
DELE <filename> 删除服务器上的指定文件
HELP <command> 返回指定命令信息
LIST <name> 如果是文件名列出文件信息,如果是目录则列出文件列表
MODE <mode> 传输模式(S=流模式,B=块模式,C=压缩模式)
MKD <directory> 在服务器上建立指定目录
NLST <directory> 列出指定目录内容
NOOP 无动作,除了来自服务器上的承认
PASS <password> 系统登录密码
PASV 请求服务器等待数据连接
PORT <address> IP 地址和两字节的端口 ID
PWD 显示当前工作目录
QUIT 从 FTP 服务器上退出登录
REIN 重新初始化登录状态连接
REST <offset> 由特定偏移量重启文件传递
RETR <filename> 从服务器上找回(复制)文件
RMD <directory> 在服务器上删除指定目录
RNFR <old path> 对旧路径重命名
RNTO <new path> 对新路径重命名
SITE <params> 由服务器提供的站点特殊参数
SIZE〈FILENAME〉 文件大小,执行成功返回 213
SMNT <pathname> 挂载指定文件结构
STAT <directory> 在当前程序或目录上返回信息
STOR <filename> 储存(复制)文件到服务器上
STOU <filename> 储存文件到服务器名称上
STRU <type> 数据结构(F=文件,R=记录,P=页面)
SYST 返回服务器使用的操作系统
TYPE <data type> 数据类型(A=ASCII,E=EBCDIC,I=binary)
FTP返回码/响应码:
响应代码 解释说明
110 新文件指示器上的重启标记
120 服务器准备就绪的时间(分钟数)
125 打开数据连接,开始传输
150 打开连接
200 成功
202 命令没有执行
211 系统状态回复
212 目录状态回复
213 文件状态回复
214 帮助信息回复
215 系统类型回复
220 服务就绪
221 退出网络
225 打开数据连接
226 结束数据连接
227 进入被动模式(IP 地址、ID 端口)
230 登录完成
250 文件行为完成
257 路径名建立
331 要求密码
332 要求帐号
350 文件行为暂停
421 服务关闭
425 无法打开数据连接
426 结束连接
450 文件不可用
451 遇到本地错误
452 磁盘空间不足
500 无效命令
501 错误参数
502 命令没有执行
503 错误指令序列
504 无效命令参数
530 未登录网络
532 存储文件需要帐号
550 文件不可用
551 不知道的页类型
552 超过存储分配
553 文件名不允许
分享到:
相关推荐
FTP命令是客户端与服务器之间通信的基础,通过这些命令可以实现文件的上传、下载、管理等操作。下面详细介绍各个命令: - **ABOR**:中断数据连接程序。当客户端需要中断正在进行的数据传输时使用此命令。 - **ACCT...
### FTP错误码与命令解析 #### 一、FTP命令概览 ...以上命令和错误码是FTP协议中最基本的部分,理解和掌握它们对于正确使用FTP非常重要。通过这些命令和错误码,用户能够有效地管理和操作远程服务器上的文件。
8. **HELP **:用于获取关于某个FTP命令的帮助信息。 9. **LIST **:列出指定 `<name>` 的文件或目录的信息。如果未指定 `<name>`,则列出当前目录下的所有文件和子目录的信息。 10. **MODE **:设置数据传输...
以下是对标题和描述中涉及的FTP命令的详细解释: 1. `ftp [-v -d -i -n -g] [hostname]`:这是启动FTP客户端的基本命令,`hostname`是目标服务器的地址。`-v`表示启用详细输出,显示命令交互过程;`-d`开启调试模式...
为了更好地理解和使用FTP,我们在此详细地总结了常用的FTP命令及其对应的响应码。 #### 1. FTP客户端命令详解 ##### 1.1 用户验证相关命令 - **USER**:提供用户名进行用户验证。 - **PASS**:提供密码进行用户...
在JAVA中实现FTP命令主要是通过使用Java的Socket编程和相关类库,如java.net.Socket和java.net.ServerSocket等。下面将详细介绍如何使用JAVA实现FTP命令以及相关知识点。 1. **FTP命令处理** FTP命令分为控制命令...
总结来说,Java的FTPClient类为我们提供了一种强大且方便的方式来与FTP服务器交互,包括获取文件大小、文件夹属性,以及执行各种FTP命令。了解并熟练运用这些功能,可以极大地提高我们在开发过程中处理文件传输的...
本文将详细讨论“支持ftp命令的远程cmd”这一技术主题,以及如何利用它来实现更高效的操作。 首先,让我们理解“远程cmd”。CMD,全称Command Prompt,是Windows操作系统中的命令行解释器,允许用户通过文本命令...
了解FTP返回结果的意义对于诊断和解决问题至关重要。当FTP客户端遇到问题时,通过查看返回代码,可以快速定位问题所在,是网络连接、文件权限、命令语法还是服务器配置问题。这有助于优化文件传输过程,提高工作效率...
- **应用场景**:在执行完任何FTP命令后,如`QUIT`、`USER`等,如果命令执行成功,服务器将返回此状态码。 #### 202 指令被接受,但未完全执行 - **含义**:这个状态码意味着命令已被接受,但还没有完全执行完毕。 ...
FTP协议的详细操作可以通过`FTP协议的命令与返回码详解.doc`文档获得更深入的了解,该文档可能涵盖了FTP命令的更多细节和每个返回码的具体含义,对于学习和使用FTP非常有帮助。在实际工作中,熟练掌握这些命令和返回...
FTP错误代码是系统在处理FTP操作时返回的状态码,它们帮助用户理解操作的执行情况,包括成功、警告或失败状态。从标题“ftp错误代码查询信息”以及描述“FTP信息代码详解:110-553”,我们可以深入探讨一系列重要的...
1. FTP服务器接口:与FTP服务器进行通信的代码,实现FTP命令的发送和接收。 2. 客户端界面:HTML和CSS文件构建用户界面,JavaScript代码处理用户交互。 3. 会话管理:处理用户登录、权限验证以及会话保持的相关逻辑...
在完成信号触发时,检查返回的状态码和数据,以确认操作成功或失败。 在FTPClient项目中,通常还会包含一个用户界面,允许用户输入服务器地址、用户名、密码,选择文件进行上传或下载,并显示操作进度和结果。这...
控制连接用于发送FTP命令和接收响应,而数据连接用于实际的文件传输。 2. **命令与响应**: FTP客户端通过控制连接发送命令,如`USER`(登录用户名)、`PASS`(密码)、`CWD`(改变工作目录)、`LIST`(获取目录...
通过分析这个"ftpApp"源代码,你可以学习如何实现这些功能,包括如何建立和管理控制连接,如何发送和解析FTP命令,以及如何处理数据连接进行文件上传和下载。此外,你还可以了解如何在实际环境中处理网络异常、错误...
然而,大多数FTP控制帧是简单的ASCII文本,可以分为FTP命令或FTP消息。FTP消息是对FTP命令的响应,由带有解释文本的应答代码构成。 FTP命令可以分为以下几类: 1. 登录命令:USER、PASS、ACCT等,用于登录FTP...
通过阅读和分析这些代码,你可以了解具体的实现细节,包括如何处理网络通信、解析和响应FTP命令,以及如何处理文件操作。这是一个很好的学习资源,可以帮助你深入理解QT5.0网络编程和FTP协议的实现。
熟练掌握这些FTP命令,不仅可以提高文件管理效率,还能避免因操作不当导致的数据丢失或错误。在实际使用中,根据不同的需求灵活运用这些命令,可以极大地提升工作效率。在Linux环境中,FTP命令是管理远程文件系统的...
4. **错误处理(Error Handling)**: 处理网络问题和服务器返回的错误代码。 5. **用户界面(User Interface)**: 提供图形化的操作界面,让用户可以直观地浏览、选择和操作文件。 在vC++ 6.0环境下开发,需要注意...