首页 > 技术知识 > 正文

搭建ftp客户端首先需要大体了解一下ftp协议以及ftp下的一些命令和返回码。 ftp简介: FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。 ftp命令: ABOR (ABORT)此命令使服务器终止前一个FTP服务命令以及任何相关数据传输。 ACCT (ACCOUNT)此命令的参数部分使用一个Telnet字符串来指明用户的账户。 ADAT (AUTHENTICATION/SECURITY DATA)认证/安全数据 ALLO 为接收一个文件分配足够的磁盘空间 APPE 增加 AUTH 认证/安全机制 CCC 清除命令通道 CDUP 改变到父目录 CONF 机密性保护命令 CWD 改变工作目录 DELE 删除文件 ENC 隐私保护通道 EPRT 为服务器指定要连接的扩展地址和端口 EPSV 进入扩展被动模式 FEAT 获得服务器支持的特性列表 HELP 如果指定了命令,返回命令使用文档;否则返回一个通用帮助文档 LANG 语言协商 LIST 如果指定了文件或目录,返回其信息;否则返回当前工作目录的信息 LPRT 为服务器指定要连接的长地址和端口 LPSV 进入长被动模式 MDTM 返回指定文件的最后修改时间 MIC 完整性保护命令 MKD 创建目录 MLSD 如果目录被命名,列出目录的内容 MLST 提供命令行指定的对象的数据 MODE 设定传输模式(流、块或压缩) NLST 返回指定目录的文件名列表 NOOP 无操作(哑包;通常用来保活) OPTS 为特性选择选项 PASS 认证密码 PASV 进入被动模式 PBSZ 保护缓冲大小 PORT 指定服务器要连接的地址和端口 PROT 数据通道保护级别 PWD 打印工作目录,返回主机的当前目录 QUIT 断开连接 REIN 重新初始化连接 REST 从指定点重新开始传输 RETR 传输文件副本 RMD 删除目录 RNFR 从…重命名 RNTO 重命名到… SITE 发送站点特殊命令到远端服务器 SIZE 返回文件大小 SMNT 挂载文件结构 STAT 返回当前状态 STOR 接收数据并且在服务器站点保存为文件 STOU 唯一地保存文件 STRU 设定文件传输结构 SYST 返回系统类型 TYPE 设定传输模式(ASCII/二进制). USER 认证用户名 ftp返回码: 110: 重新启动标记应答。 120: 在n分钟内准备好 125: 连接打开准备传送 150: 打开数据连接 200: 命令成功 202: 命令失败 211: 系统状态 212: 目录状态 213: 文件状态 214: 帮助信息 215: 名字系统类型 220: 新用户服务准备好了 221: 服务关闭控制连接,可以退出登录 225: 数据连接打开,无传输正在进行 226: 关闭数据连接,请求的文件操作成功 227: 进入被动模式 230: 用户登录 250: 请求的文件操作完成 257: 创建”PATHNAME” 331: 用户名正确,需要口令 332: 登录时需要帐户信息 350: 下一步命令 421: 不能提供服务,关闭控制连接 425: 不能打开数据连接 426: 关闭连接,中止传输 450: 请求的文件操作未执行 451: 中止请求的操作:有本地错误 452: 未执行请求的操作:系统存储空间不足 500: 格式错误,命令不可识别 501: 参数语法错误 502: 命令未实现 503: 命令顺序错误 504: 此参数下的命令功能未实现 530: 未登录 532: 存储文件需要帐户信息 550: 未执行请求的操作 551: 请求操作中止:页类型未知 552: 请求的文件操作中止,存储分配溢出 553: 未执行请求的操作:文件名不合法 150    文件状态良好,打开数据连接 200    命令成功 202    命令未实现 211    系统状态或系统帮助响应 212    目录状态 213    文件状态 214    帮助信息,信息仅对人类用户有用 215    名字系统类型 220    对新用户服务准备好 221    服务关闭控制连接,可以退出登录 225    数据连接打开,无传输正在进行 226    关闭数据连接,请求的文件操作成功 227    进入被动模式 230    用户登录 250    请求的文件操作完成 257    创建”PATHNAME” 331    用户名正确,需要口令 332    登录时需要帐户信息 350    请求的文件操作需要进一步命令 421    连接用户过多 425    不能打开数据连接 426    关闭连接,中止传输 450    请求的文件操作未执行 451    中止请求的操作:有本地错误 452    未执行请求的操作:系统存储空间不足 500    格式错误,命令不可识别 501    参数语法错误 502    命令未实现 503    命令顺序错误 504    此参数下的命令功能未实现 530    账号或密码错误 532    存储文件需要帐户信息 550    未执行请求的操作 551    请求操作中止:页类型未知 552    请求的文件操作中止,存储分配溢出 553    未执行请求的操作:文件名不合法 其次是要明确客户端要实现的功能:比如说在服务器上创建文件夹,上传资料到服务器等 然后在命令集中找到相关命令,接下来就是从客户端将这些命令发送给服务器让服务器知道你要干什么。具体操作是通过send()、recv()函数完成,会有一个返回值,如果服务器成功接收会返还一个返回码,根据返回码表你可以知道服务器有没有完成你想要完成的操作。如果没有完成可以多次操作指导服务器完成操作为止。具体的还需要一些其他的操作,比如说设置主动或者被动模式,设置数据传输格式以及初始化端口信息等。

猜你喜欢