命令和返回码:
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 |
文件名不允许
|
分享到:
相关推荐
FTP客户端编程主要是指通过编程语言实现对FTP服务器的交互,包括下载、上传文件以及获取服务器上的文件列表等功能。本教程将深入探讨FTP客户端编程的核心概念、常用命令及其实现方式。 一、FTP基本原理 FTP基于TCP/...
### vc实现FTP编程知识点详解 #### 一、概述:FTP协议与VC开发基础 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。FTP通信过程中涉及到两个端口:一个是默认端口21,用于控制连接,即...
### VC的FTP编程详解 #### 一、引言 在软件开发中,FTP(File Transfer Protocol)协议是一种常用的文件传输方式。使用Visual C++(VC)进行FTP编程时,MFC(Microsoft Foundation Classes)库提供了丰富的类来...
### FTP基础知识 FTP是一种用于在网络上进行文件传输的标准协议,主要功能是在两台计算机之间交换文件。它使用客户机/服务器模型,其中客户机发起FTP会话请求,而服务器响应并处理这些请求。FTP协议通常使用两个TCP...
1. **Socket编程**:Socket是网络通信的基础,它是进程间通信(IPC)的一种方式,特别是在Internet上。在C++中,可以使用`<sys/socket.h>`和`<netinet/in.h>`等头文件来创建和操作套接字。我们需要理解套接字的创建...
总之,FTP协议编程是网络开发中的基础技能,理解其工作原理和API调用方式对于实现文件的上传下载至关重要。通过学习和实践,开发者可以构建自己的FTP客户端或集成FTP功能到其他应用中,高效地进行文件的网络传输。
### FTP网络编程知识点详解 #### 一、FTP协议概述 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行...这不仅有助于理解网络编程的基础知识,还能为将来开发其他类型的网络应用程序打下坚实的基础。
在VC++环境中,通过编程实现FTP客户端程序,我们可以理解为利用C++语言编写一个应用程序,该程序可以连接到FTP服务器,执行上传、下载、列出远程目录、删除文件等基本FTP操作。 在VC++中,实现FTP客户端程序通常...
本文将根据提供的文件信息,深入探讨Unix环境下FTP编程的关键技术点,包括FTP协议的基础原理、Unix系统下的FTP实现细节,以及具体的编程实现方法。 ### FTP协议基础 FTP(File Transfer Protocol)是一种用于在...
FTP编程在IT行业中是网络通信领域的一个重要组成部分,主要用于文件的上传、下载和管理。Delphi是一种流行的面向对象的编程...而对于经验丰富的开发者,这个源代码可以作为一个基础,以便快速搭建自己的FTP客户端应用。
FTP(File Transfer Protocol)是一种标准的网络协议,用于在互联网上进行文件传输。在这个网络编程课设中,学生被要求使用...通过完成这个项目,学生将能够构建一个基本的FTP客户端,为今后的网络编程打下坚实基础。
在IT行业中,C语言SOCKET编程是网络通信的基础,而FTP(File Transfer Protocol)则是互联网上广泛使用的文件传输协议。本项目是利用C语言实现的一个FTP客户端,涵盖了FTP的基本操作,如创建和删除目录、查看目录...
总结来说,基于C++实现FTP协议编程涉及到网络编程基础知识、FTP协议规范的理解、多线程处理以及可能的硬件交互。这是一个复杂且有趣的项目,可以帮助开发者深入理解网络通信和系统编程。在实践中,除了基本的实现,...
在本项目中,"基于C#的FTP客户端的实现(网络编程课设)"是一个网络编程课程设计项目,主要目标是创建一个使用C#语言编写的FTP(File Transfer Protocol)客户端。FTP是一种广泛应用的互联网协议,用于在不同计算机...
### VB编程FTP工具详解 #### 一、概述 在Visual Basic (VB) 开发环境中创建一个功能完善的FTP客户端是一项挑战性的任务,但同时也极具教育意义。本文档将详细介绍如何使用VB编写一个完整的FTP客户端程序,并深入...
总的来说,FTP和TELNET是网络通信的基础工具,对于理解网络工作原理和开发相关应用程序至关重要。通过学习这些协议,开发者可以更好地构建和维护网络服务,尤其是在需要远程文件操作或设备控制的场景下。同时,了解...
总之,FTP编程是网络编程的基础,而使用VC6.0实现FTP客户端是一个很好的实践起点。通过对FTP协议的理解和WinInet库的应用,你可以创建自己的文件传输工具,这对于进一步学习其他网络协议和服务,如HTTP、SMTP等,都...
1. **FTP协议基础**:FTP基于TCP/IP协议族,通过两个并行的连接来工作——控制连接和数据连接。控制连接用于发送命令和接收响应,数据连接则负责实际的数据传输。 2. **服务器端实现**:服务器端程序通常监听特定...
FTP(File Transfer Protocol)是一种用于在互联网上传输文件的标准协议,而HTTP(Hypertext Transfer Protocol)则是网页浏览的基础协议。本教程将介绍如何在Windows 7 64位系统上利用FTPServer和Apache Tomcat搭建...