`

ftp 基础编程

阅读更多

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 文件名不允许

分享到:
评论

相关推荐

    FTP客户端编程

    FTP客户端编程主要是指通过编程语言实现对FTP服务器的交互,包括下载、上传文件以及获取服务器上的文件列表等功能。本教程将深入探讨FTP客户端编程的核心概念、常用命令及其实现方式。 一、FTP基本原理 FTP基于TCP/...

    vc实现ftp编程

    ### vc实现FTP编程知识点详解 #### 一、概述:FTP协议与VC开发基础 FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议。FTP通信过程中涉及到两个端口:一个是默认端口21,用于控制连接,即...

    vc的ftp编程

    ### VC的FTP编程详解 #### 一、引言 在软件开发中,FTP(File Transfer Protocol)协议是一种常用的文件传输方式。使用Visual C++(VC)进行FTP编程时,MFC(Microsoft Foundation Classes)库提供了丰富的类来...

    python网络编程基础FTP

    ### FTP基础知识 FTP是一种用于在网络上进行文件传输的标准协议,主要功能是在两台计算机之间交换文件。它使用客户机/服务器模型,其中客户机发起FTP会话请求,而服务器响应并处理这些请求。FTP协议通常使用两个TCP...

    FTP服务器——c++编程

    1. **Socket编程**:Socket是网络通信的基础,它是进程间通信(IPC)的一种方式,特别是在Internet上。在C++中,可以使用`&lt;sys/socket.h&gt;`和`&lt;netinet/in.h&gt;`等头文件来创建和操作套接字。我们需要理解套接字的创建...

    FTP协议编程.rar_FTP 下载_ftp协议_文件服务器

    总之,FTP协议编程是网络开发中的基础技能,理解其工作原理和API调用方式对于实现文件的上传下载至关重要。通过学习和实践,开发者可以构建自己的FTP客户端或集成FTP功能到其他应用中,高效地进行文件的网络传输。

    ftp网络编程

    ### FTP网络编程知识点详解 #### 一、FTP协议概述 FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上进行...这不仅有助于理解网络编程的基础知识,还能为将来开发其他类型的网络应用程序打下坚实的基础。

    VC编程实现的FTP客户端程序

    在VC++环境中,通过编程实现FTP客户端程序,我们可以理解为利用C++语言编写一个应用程序,该程序可以连接到FTP服务器,执行上传、下载、列出远程目录、删除文件等基本FTP操作。 在VC++中,实现FTP客户端程序通常...

    Unix环境下Ftp的编程实现

    本文将根据提供的文件信息,深入探讨Unix环境下FTP编程的关键技术点,包括FTP协议的基础原理、Unix系统下的FTP实现细节,以及具体的编程实现方法。 ### FTP协议基础 FTP(File Transfer Protocol)是一种用于在...

    FTP编程代码

    FTP编程在IT行业中是网络通信领域的一个重要组成部分,主要用于文件的上传、下载和管理。Delphi是一种流行的面向对象的编程...而对于经验丰富的开发者,这个源代码可以作为一个基础,以便快速搭建自己的FTP客户端应用。

    网络编程FTP课设

    FTP(File Transfer Protocol)是一种标准的网络协议,用于在互联网上进行文件传输。在这个网络编程课设中,学生被要求使用...通过完成这个项目,学生将能够构建一个基本的FTP客户端,为今后的网络编程打下坚实基础。

    C语言SOCKET编程FTP

    在IT行业中,C语言SOCKET编程是网络通信的基础,而FTP(File Transfer Protocol)则是互联网上广泛使用的文件传输协议。本项目是利用C语言实现的一个FTP客户端,涵盖了FTP的基本操作,如创建和删除目录、查看目录...

    基于C++实现的FTP协议编程

    总结来说,基于C++实现FTP协议编程涉及到网络编程基础知识、FTP协议规范的理解、多线程处理以及可能的硬件交互。这是一个复杂且有趣的项目,可以帮助开发者深入理解网络通信和系统编程。在实践中,除了基本的实现,...

    基于C#的FTP客户端的实现(网络编程课设)

    在本项目中,"基于C#的FTP客户端的实现(网络编程课设)"是一个网络编程课程设计项目,主要目标是创建一个使用C#语言编写的FTP(File Transfer Protocol)客户端。FTP是一种广泛应用的互联网协议,用于在不同计算机...

    VB编程FTP工具详解(源码)

    ### VB编程FTP工具详解 #### 一、概述 在Visual Basic (VB) 开发环境中创建一个功能完善的FTP客户端是一项挑战性的任务,但同时也极具教育意义。本文档将详细介绍如何使用VB编写一个完整的FTP客户端程序,并深入...

    ftp telnet编程学习实例

    总的来说,FTP和TELNET是网络通信的基础工具,对于理解网络工作原理和开发相关应用程序至关重要。通过学习这些协议,开发者可以更好地构建和维护网络服务,尤其是在需要远程文件操作或设备控制的场景下。同时,了解...

    FTP编程(VC6.0实现)

    总之,FTP编程是网络编程的基础,而使用VC6.0实现FTP客户端是一个很好的实践起点。通过对FTP协议的理解和WinInet库的应用,你可以创建自己的文件传输工具,这对于进一步学习其他网络协议和服务,如HTTP、SMTP等,都...

    FTP协议实现程序

    1. **FTP协议基础**:FTP基于TCP/IP协议族,通过两个并行的连接来工作——控制连接和数据连接。控制连接用于发送命令和接收响应,数据连接则负责实际的数据传输。 2. **服务器端实现**:服务器端程序通常监听特定...

    ftp搭建并实现http访问

    FTP(File Transfer Protocol)是一种用于在互联网上传输文件的标准协议,而HTTP(Hypertext Transfer Protocol)则是网页浏览的基础协议。本教程将介绍如何在Windows 7 64位系统上利用FTPServer和Apache Tomcat搭建...

Global site tag (gtag.js) - Google Analytics