首 页 网络编程
网页制作 图形图象 操作系统 冲浪宝典
软件教学 认证考试

网络安全 网络办公 行业资讯 评测对比
您当前位置:站长天空 -> 软件教学
Ftp客户端编程-.NET教程,面向对象编程
作者:网友供稿 点击:1415
推荐
西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金
站内搜索
文章页数:[1] 
关于ftp协议;

ftp命令;

ftp返回值;

ftp编程结构;



关于ftp协议:

关于ftp协议,我想都大概了解,所以不做说明了。以下是rpc959的介绍:

the objectives of ftp are 1) to promote sharing of files (computer

programs and/or data), 2) to encourage indirect or implicit (via

programs) use of remote computers, 3) to shield a user from

variations in file storage systems among hosts, and 4) to transfer

data reliably and efficiently. ftp, though usable directly by a user

at a terminal, is designed mainly for use by programs.



ftp命令:

也许很多人都用过ftp命令,但是可能也有许多人和我曾经犯一样的错误,错认了ftp命令。我原来在win2000的控制台下打上ftp,然后进入了ftp提示符下,接着我用上了许多符有“windows”特色的命令,如“dir”,“cd”,看到它按照自己的想法在运行,以为自己便掌握了ftp命令了。我非常有信心的打开编程工具,写一个socket,然后向ftp服务器连接了。当然,服务器返回了信息提示是连接成功了,我便开始发送刚才用过的一些命令,可返回的信息大多都是“500 xx: command not understood”。 最后,我发送了help命令,返回的结果让我惊异不已,里面的命令大多我都没用过。原来这些才是真正的ftp命令。windows里面的只是ftp的客户端工具,里面的命令根本不是ftp命令。网上有许多资料里也是把windows里ftp客户端的命令和ftp命令混在一起。真正的ftp命令应参考rfc959文档中的说明(其实一些ftp工具如cuteftp里也把命令显示出来)。其中经常被使用的命令包括如下:

abor:中止;

cwd 目录名:改变现有目录;

cdup:返回到父级目录;

rein:重新初始化服务器状态;

quit:退出;

port:设置数据传输端口;

pasv:转为被动方式

type a/i:传输方式;

mode s/b/c:传输方式?;

retr 文件名:下载文件;

stor 文件名:上传文件;

append 追加本地文件到服务器;

rnfr:修改原文件名(修改之前的文件名)

rnto:修改后的文件名;

dele 文件名:删除文件;

rmd 目录夹:删除文件夹;

mkd 目录:新建目录;

pwd 当前工作目录;

list:列出该目录中的项目;

syst:查看服务器操作系统信息;

stat查看ftp参数状态;



ftp命令的返回值:

每一个ftp发送之后,ftp服务器都会返回一个字符串,其中包括一个返回代码和一串说明信息。这个返回码主要是用于判断命令是否被成功执行了。除此之外,还有一个非常重要的命令的返回。当发送pasv之后,返回“227 entering passive mode (127,0,0,1,4,18)”。这意味着在服务器上有一个端口被开放,他将为我们后面接着的数据传输作好准备,但是我们如何知道该端口号呢,就在(127,0,0,1,4,18)中,前面四位指服务器的地址,关键是最后两位,将最后第二位乘256再加上最后一位的值就是我们的端口号,也就是4*256+18。取得端口号之后我们就可以用socket连接到这里。这为我们后面的工作作好准备了,因为我们的取得列表,上传,下载文件都要依靠它来实现。常用的返回如下:

125 data connection already open; transfer starting.

226 transfer complete.

227 entering passive mode (127,0,0,1,4,18).

230 user xxxxx logged in.

331 password required for xxxxx.

425 can’t open data connection.

226 closing data connection.



ftp客户端编程结构:

前面已提到了ftp命令及其响应信息。其实我们做ftp客户端工具只不过是用一个winsocket连接上ftp服务器,然后象其发送命令。在这个过程中,我们依靠发送——响应的机制。即发送ftp命令——接收返回的响应信息——分析该信息——执行相关操作——发送下一条命令。在一般意义上,有一个socket用来连接ftp服务器的相关端口(如默认的21),它负责ftp命令的发送和接收返回的响应信息。一些操作如“进入目录”,“删除文件”,依靠这个socket发送一条命令就可完成了。然而对于有数据传输的操作,主要是显示远端目录列表,上传、下载文件,我们不得不依靠另一个socket来完成。在进行这种操作之前,必须发送pasv命令,它返回了227开头的信息,在括号中有以逗号隔开的六个数字,前四个指服务器的地址,关键是最后两个,将倒数第二个乘256再加上最后一个数字,其结果就是ftp服务器开放的用于下一条命令来进行数据传输的端口。如我们得到227 entering passive mode (127,0,0,1,4,18),那么端口号是4*256+18=1042。我们用一个socket来连接这个端口,之后,我们可根据具体的操作(显示目录list,上传文件stor,下载retr)来发送命令。返回的响应代码为125开头,也就是连接打开了,可以开始传输数据,这时就可用socket的发送或接收方法来传输数据。完成之后,服务器会返回代码226 transfer complete,表明数据传输完成。值得注意的是,我们最好不要一次发送多条命令,例如我们要回到上层目录并且显示这个目录,我们得发送cdup,pasv,list,我们不能一下子发送:cdup\r\n, pasv\r\n, list\r\n。 而是发送完cdup之后等待其响应代码,然后再发送后面一条。当pasv返回之后,我们打开另一个socket连接到相关端口上。然后发送list,返回125之后在开始接收数据,最后返回226表明完成。对于上传和下载也是差不多的过程(下载之前要先取得文件的大小)。



参考资料:

.net网络高级编程:清华大学出版社,andrew krowczyk;

rfc959;

visualbasic.net网络编程学习捷径;


文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

文章页数:[1] 


放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·C#数据库连接字符大全-.NET教程,C#语言
·Ftp客户端编程-.NET教程,面向对象编程
·ASP.NET POST方式提交数据-.NET教程,Asp.Net开发
·单独控制IE WebControl里面的Treeview的几个动作的Postback-.NET教程,数据库应用
·根据IP找地址的java实现-JSP教程,Java技巧及代码
·ASP.NET 2.0 多文件上传小经验-.NET教程,Asp.Net开发
·ASP.NET 2.0中隐藏listbox的某一项-.NET教程,Asp.Net开发
·使用Windows Script 关闭和打开指定程序-.NET教程,数据库应用
·asp.net 2.0下嵌套masterpage页的可视化编辑-.NET教程,Asp.Net开发
·Jsp学习笔记(三)-----Jsp语法!-JSP教程,Jsp/Servlet
最新文章
·让windows vista系统只能识别自己指定的u盘_windows vista
·优化建议与技巧(来自adsense优化团队)_网赚技巧
·艾瑞曹军波:广告联盟发展的下一个突破点_网赚技巧
·狗狗网ceo李晶:80后创业 心态最重要_站长访谈
·从九句话看网站的综合发展_站长心得
·改进网页可读性的7个方法_站长心得
·常见问题_google adsense 广告点击统计_google推广
·10条优秀的网站设计经验1_站长心得
·怎样做个小网站_站长心得
·实施会员制计划中7项致命的失误_网站推广
相关主题
西部数码虚拟主机

友情链接
CNNIC 西部数码
万网 自助建站
虚拟主机 asp空间
域名注册 域名
域名申请 主页空间
论坛空间 网站空间
国际域名 虚拟空间
空间租用 DDOS防火墙
成都主机托管 四川主机托管
主机租用 服务器租用
网站目录 自助建站
虚拟主机 网址大全
软件下载
自助链接
虚拟主机资讯 特价虚拟主机
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
关于我们:站长天空:专业提供最新的站长资讯、在线教程、虚拟主机权威评测、虚拟主机性能对比、网站制作教程,开发教程,站长工具。包括网页制作教程、冲浪宝典、编程参考、操作系统、软件教学、行业动态等。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论 打印  刷新     关闭