欢迎来到天天文库
浏览记录
ID:18618604
大小:210.00 KB
页数:14页
时间:2018-09-20
《c#网络编程专题11:实现一个基于ftp协议的程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、[C#网络编程系列]专题十一:实现一个基于FTP协议的程序——文件上传下载器(转载:http://www.cnblogs.com/zhili/archive/2012/08/23/WebServer.html)引言:在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信大家追MM都有自己的经验的,我感觉大部分的过程肯定是——第一步:先通过工作关系或者朋友关系等认识MM(认识FTP协议,知道FT
2、P协议的是什么);第二步:当然了解MM有兴趣爱好了(了解FTP协议有哪些命令和工作过程)第三步:如果对方是你的菜的话,那当然要采取追求的了(就好比用了解到的FTP协议来实现一个文件上传下载器)。不过追MM好像对我来说还是比较难的了,所以还是言归正传了,还是好好的学习我的代码吧,回到本章的内容——FTP的协议。(注:最近想好好改进下文章的幽默程度,所以文章中会尽量以有趣的生活中的例子来表述网络编程的知识,希望可以让大家在学习知识的同时也可以获得乐趣,如果有什么地方理解不准确的还望大家多多指出。)一、FTP协议的自我介绍我们在上学的
3、时候,同学们第一次开学的时候老师一般会组织大学到讲台上进行自我介绍,让同学都互相认识,同样,如果对于没有接触过FTP协议的朋友来说,FTP协议的自我介绍当然也是不可避免的了,这样我们才能进一步去了解FTP协议“这位同学”了,之后才能和他成为好朋友,或者是好基友了。下面就开始FTP协议同学的自我介绍了,大家热烈欢迎。FTP协议同学:大家好,我的名字叫FTP,FTP是文件传输协议(FileTransferProtocol,FTP),我的工作就是负责将文件从一台计算机传输到另外一台计算机,并且我还可以保证传输的可靠性。我的工作流程可以
4、通过下面的一张图来表达:从图中大家应该可以明白我的工作过程了吧,我的工作过程是典型的C/S模式——我的客户端(在本章实现的文件上传下载器属于客户端)首先发起与我的服务器连接连接,告诉我的服务器说“我现在想和你聊聊天”,然后我的服务器收到这个请求后给出回答——“聊天,当然可以了,我批准了”,客户端收到这个信息后,就可以服务器之间就建立一条马路或者是通道,然后我的客户端好还想进一步了解下我的服务器,在发出一个说“我想要下载你上面的东西或者是我想上传一些文件到你那里,想让你帮我保管下,这样我可以随处都可以从你那里得到我上传的资料的”,
5、我的服务器收到请求后,如果允许客户端这么做的话就会回答说“可以啊”(就像我们追女生一样,建立好关系后,当然就要表白了,此时我们就说“我很喜欢你之类的话”,然后等待MM的回答,“可以啊”这个答案都是我们希望听到的答案的),我的客户端听到后非常开心,马上选择自己需要上传的文件或者想从服务器下载的文件找到,上传或者下载该文件的。我还要补充一点,在访问我的FTP服务器之前必须登录,这样我的服务器才认识你,才可能会搭理你的,登录时就需要客户端提供一个用户名和密码,提供了正确的用户名和密码后就可以和我的服务器进行聊天和请求上传或下载我服务器
6、上的文件了;然而我的某些服务器提供了一种匿名的方式,我的客户端不需要提供用户名和密码就可以进行聊天了,其实匿名的方式和我聊天的本质是:提供服务的公司或机构在我的服务器上建立一个公用的账户,方便那些没有提供用户名和密码的客户端与我聊天。上面就是我的自我介绍了,谢谢大家。二、.Net为实现我的客户端提供了些什么?可以说微软真是一位雷锋叔叔的,因为在他的.Net类库中提供了很多类库供我们使用,当然为实现我的客户端也提供了一些类的支持的,现在就看看这位好人帮我们提供了哪些类来对实现一个FTP客户端程序的支持的。这位好人通过命名空间Sys
7、tem.Net下的FtpWebRequest类和FtpWebResponse类提供对实现FTP客户端的支持。2.1FtpWebRequest类该类是WebRequest类的派生类,FTPWebRequest类用于向服务器发出请求,告诉服务器说“我想和你聊天",如果要获得FtpWebRequest的一个实例,则需要使用Create方法来创建实例,对于该类如何使用我在这里也就不一一列出来的,大家可以查看MSDN的相关文档来了解方法的使用,并且在本专题实现的程序中也会有所介绍的,下面给出MSDN中的一个链接的:http://msdn.
8、microsoft.com/zh-cn/library/8exfzxft.aspx2.2FtpWebResponse类FTP客户端既然发话了,服务器当然也要有所表示的了,不要哑巴一样不说话的,总要给个答复的,FtpWebResponse类就负责封装FTP服务器对
此文档下载收益归作者所有