`

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

分享到:
评论

相关推荐

    python网络编程基础FTP

    python网络编程基础FTP(E文原著)

    ftp客户端与服务器端编程

    用ftp协议实现的客户端与服务器端的通讯,是网络编程的方面的基础

    C# 网络编程ftp(vs2012)

    C# 网络编程,ftp服务课件,包括服务器,客户端,可以上传下载文件,使用socket套接字,在vs2003基础上修改升级到vs2012,在vs2012中调式通过。 修改多线程调用主线程控件时,使用委托

    网络编程ftp

    有助于网络应用程序开发,为开发高效的程序代码打下基础

    FTP套接字编程

    在前三个实验的基础上,将其改造为一个能传输指定文件名称的点对点文件传输软件 设计并实现一个支持多个客户端的文件传输服务器 客户端等待键盘输入文件名称,然后将文件名称传输给服务器,服务器在预先设置好的...

    编程语言+ASP.NET+FTP客户端程序开发+毕业设计和编程实战

    适用人群:ASP.NET框架开发1-2年的编程人员,希望通过项目实战,检验自己对ASP.NET编程的掌握程度,系统学习ASP.NET程序开发的人员。 项目说明:完整的FTP管理功能,包括连接管理模块、文件管理模块、文件传输模块...

    C#网络核心编程PDF,主要包括网络开发的基础知识、基础服务器、基础客户端开发、FTP、SMTP、POP3和远程控制开发,win32,web,XML,WEB services等等。

    C#网络核心编程PDF,主要包括网络开发的基础知识、基础服务器、基础客户端开发、FTP、SMTP、POP3和远程控制开发,win32,web,XML,WEB services等等。

    Python网络编程基础

    Python网络编程基础 PDF 本书全面介绍了使用PYTHON进行网络编程的基础知识,高级网络操作、WebServices、解析HTML和XHTML、XML、FTP、使用PYTHON操作数据库、SSL、几种服务器端框架,以及多任务处理等,实用性比较强...

    Java高级程序设计实验报告-FTP服务器设计与实现.doc

    FTP基础知识: 报告会介绍FTP协议的基本原理、工作模式和命令结构,以确保读者对FTP的工作方式有充分的了解。 FTP服务器架构: 我们将详细讨论FTP服务器的架构设计,包括数据连接管理、用户权限控制、日志记录等...

    FTP实验报告.docx

    FTP实验报告全文共2页,当前为第1页。... 实验总结 通过本次试验,我理解了整个FTP协议的细节和工作流程,对Linux系统下Socket编程的过程有了较多的了解,为以后网络编程的学习打下了良好的基础。 FTP实验报告

    java common FTPClient ftp sftp

    适合人群:具备一定编程基础,工作1-3年的研发人员。 能学到什么:①如何快速使用该工具操作ftp和sftp;②快速知道如何使用java操作ftp文件,避免踩坑,多种操作方式。③ftp文件到底可如何操作。如何获取,如何上传...

    C#基础编程及数据库操作.ppt

    PPT介绍了c#的基础语法,异常处理与跟踪调试,文件操作,关系数据库标准语言SQL,XML Web Service开发,网络安全.FTP协议开发,UDP协议开发,数据库技术等等。

    C#编程从基础到实践

    第6部分介绍大量的分类开发实例的实现,包括DNS的开发、FTP协议编程、SMTP协议编程、HTIP协议编程和ASP网页应用程序编程的实现。第7部分介绍一个大型的C#网络开发实例的实现。 《C#编程从基础到实践》可作为初学者...

    python网络编程基础

    [1] 本书全面介绍了使用Python语言进行网络编程的基础知识,主要内容包括网络基础知识、高级网络操作、Web Services、解析HTML和XHTML、XML、E-mail服务、FTP、使用Python操作数据库、SSL、几种服务器端框架(包括...

    linux多进程和网络编程---ftp服务器实战

    基于linux编程龙书,Apue和UNP深入浅出讲解原理: 文件...linux基础编程linux网络编程ftpServer开源项目之源码解析 更多课程相关内容请查看我的博文:https://blog.csdn.net/wangwengx73sina/article/details/87940242

    Java高级程序设计实验代码-多线程版-FTP服务器设计与实现.zip

    全面的FTP服务器实现: ZIP文件中包含了一个完整的FTP服务器的源代码,涵盖了FTP协议的基础实现、多线程编程技巧、服务器性能优化、数据传输安全等各个方面。这意味着读者可以深入研究代码,了解每个功能的实现方式,...

    计算机网络高级编程

    本文件清晰明了地指导关于计算机网络的学习,通过学习可以在很深刻理解计算机网络结构概念的基础上,掌握必要的编程技巧

Global site tag (gtag.js) - Google Analytics