命令和返回码:
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 anonymousResponse: 331 Password required for anonymous.Request: PASS notexist.comResponse: 230 User anonymous logged in.Request: CWD boardResponse: 250 CWD command successful. "/board" is current directory.Request: TYPE IResponse: 200 Type set to I.Request: SIZE 4saac062.zipResponse: 213 248288Request: RETR 4saac062.zipResponse: 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 |
文件名不允许
|
分享到:
相关推荐
python网络编程基础FTP(E文原著)
用ftp协议实现的客户端与服务器端的通讯,是网络编程的方面的基础
C# 网络编程,ftp服务课件,包括服务器,客户端,可以上传下载文件,使用socket套接字,在vs2003基础上修改升级到vs2012,在vs2012中调式通过。 修改多线程调用主线程控件时,使用委托
有助于网络应用程序开发,为开发高效的程序代码打下基础
在前三个实验的基础上,将其改造为一个能传输指定文件名称的点对点文件传输软件 设计并实现一个支持多个客户端的文件传输服务器 客户端等待键盘输入文件名称,然后将文件名称传输给服务器,服务器在预先设置好的...
适用人群:ASP.NET框架开发1-2年的编程人员,希望通过项目实战,检验自己对ASP.NET编程的掌握程度,系统学习ASP.NET程序开发的人员。 项目说明:完整的FTP管理功能,包括连接管理模块、文件管理模块、文件传输模块...
C#网络核心编程PDF,主要包括网络开发的基础知识、基础服务器、基础客户端开发、FTP、SMTP、POP3和远程控制开发,win32,web,XML,WEB services等等。
Python网络编程基础 PDF 本书全面介绍了使用PYTHON进行网络编程的基础知识,高级网络操作、WebServices、解析HTML和XHTML、XML、FTP、使用PYTHON操作数据库、SSL、几种服务器端框架,以及多任务处理等,实用性比较强...
FTP基础知识: 报告会介绍FTP协议的基本原理、工作模式和命令结构,以确保读者对FTP的工作方式有充分的了解。 FTP服务器架构: 我们将详细讨论FTP服务器的架构设计,包括数据连接管理、用户权限控制、日志记录等...
FTP实验报告全文共2页,当前为第1页。... 实验总结 通过本次试验,我理解了整个FTP协议的细节和工作流程,对Linux系统下Socket编程的过程有了较多的了解,为以后网络编程的学习打下了良好的基础。 FTP实验报告
适合人群:具备一定编程基础,工作1-3年的研发人员。 能学到什么:①如何快速使用该工具操作ftp和sftp;②快速知道如何使用java操作ftp文件,避免踩坑,多种操作方式。③ftp文件到底可如何操作。如何获取,如何上传...
PPT介绍了c#的基础语法,异常处理与跟踪调试,文件操作,关系数据库标准语言SQL,XML Web Service开发,网络安全.FTP协议开发,UDP协议开发,数据库技术等等。
第6部分介绍大量的分类开发实例的实现,包括DNS的开发、FTP协议编程、SMTP协议编程、HTIP协议编程和ASP网页应用程序编程的实现。第7部分介绍一个大型的C#网络开发实例的实现。 《C#编程从基础到实践》可作为初学者...
[1] 本书全面介绍了使用Python语言进行网络编程的基础知识,主要内容包括网络基础知识、高级网络操作、Web Services、解析HTML和XHTML、XML、E-mail服务、FTP、使用Python操作数据库、SSL、几种服务器端框架(包括...
基于linux编程龙书,Apue和UNP深入浅出讲解原理: 文件...linux基础编程linux网络编程ftpServer开源项目之源码解析 更多课程相关内容请查看我的博文:https://blog.csdn.net/wangwengx73sina/article/details/87940242
全面的FTP服务器实现: ZIP文件中包含了一个完整的FTP服务器的源代码,涵盖了FTP协议的基础实现、多线程编程技巧、服务器性能优化、数据传输安全等各个方面。这意味着读者可以深入研究代码,了解每个功能的实现方式,...
本文件清晰明了地指导关于计算机网络的学习,通过学习可以在很深刻理解计算机网络结构概念的基础上,掌握必要的编程技巧