ftp客户端的搭建

卟留遗憾灬 2020-07-17 16:43:51 1508

搭建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()函数完成,会有一个返回值,如果服务器成功接收会返还一个返回码,根据返回码表你可以知道服务器有没有完成你想要完成的操作。如果没有完成可以多次操作指导服务器完成操作为止。具体的还需要一些其他的操作,比如说设置主动或者被动模式,设置数据传输格式以及初始化端口信息等。

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 1 1 评论 打赏
评论
0个
内容存在敏感词
手气红包
    易百纳技术社区暂无数据
相关专栏
置顶时间设置
结束时间
删除原因
  • 广告/SPAM
  • 恶意灌水
  • 违规内容
  • 文不对题
  • 重复发帖
打赏作者
易百纳技术社区
卟留遗憾灬
您的支持将鼓励我继续创作!
打赏金额:
¥1易百纳技术社区
¥5易百纳技术社区
¥10易百纳技术社区
¥50易百纳技术社区
¥100易百纳技术社区
支付方式:
微信支付
支付宝支付
易百纳技术社区微信支付
易百纳技术社区
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

审核成功

发布时间设置
发布时间:
是否关联周任务-专栏模块

审核失败

失败原因
备注
拼手气红包 红包规则
祝福语
恭喜发财,大吉大利!
红包金额
红包最小金额不能低于5元
红包数量
红包数量范围10~50个
余额支付
当前余额:
可前往问答、专栏板块获取收益 去获取
取 消 确 定

小包子的红包

恭喜发财,大吉大利

已领取20/40,共1.6元 红包规则

    易百纳技术社区