ftp 基础编程
网上COPY而来 原地址:http://www.cnblogs.com/huoguofeng/archive/2010/11/19/1881327.html
命令和返回码 :
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 文件名不允许
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com