ftp客户端的搭建
搭建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()函数完成,会有一个返回值,如果服务器成功接收会返还一个返回码,根据返回码表你可以知道服务器有没有完成你想要完成的操作。如果没有完成可以多次操作指导服务器完成操作为止。具体的还需要一些其他的操作,比如说设置主动或者被动模式,设置数据传输格式以及初始化端口信息等。
- 分享
- 举报
-
浏览量:4121次2020-08-20 11:05:39
-
浏览量:2301次2020-07-28 19:16:36
-
浏览量:2306次2020-07-24 17:13:30
-
浏览量:2423次2020-07-17 17:00:06
-
浏览量:683次2023-08-21 11:47:40
-
浏览量:6190次2021-04-06 20:09:36
-
浏览量:5613次2017-11-15 11:39:42
-
浏览量:2285次2023-12-21 11:18:25
-
浏览量:904次2024-01-24 18:28:37
-
浏览量:3184次2020-08-07 17:39:59
-
浏览量:7912次2021-09-27 14:44:00
-
浏览量:1408次2023-04-28 18:01:10
-
浏览量:22670次2021-03-15 15:40:13
-
浏览量:2903次2023-12-28 17:46:27
-
浏览量:21035次2021-02-02 19:39:27
-
浏览量:5395次2021-03-02 02:32:36
-
浏览量:3705次2017-11-16 18:17:23
-
2020-10-17 18:27:28
-
浏览量:3231次2020-08-04 17:37:01
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
卟留遗憾灬
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明