搭建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()函数完成,会有一个返回值,如果服务器成功接收会返还一个返回码,根据返回码表你可以知道服务器有没有完成你想要完成的操作。如果没有完成可以多次操作指导服务器完成操作为止。具体的还需要一些其他的操作,比如说设置主动或者被动模式,设置数据传输格式以及初始化端口信息等。
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:ftp客户端的搭建 https://www.yhzz.com.cn/a/15530.html