缘奇科普-奇怪的知识又增加了

FTP客户端设计与实现

原创版权 未知作者:缘起 字体大小选择: [ ]

  系统设计互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。
  
  FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。辅助管理模块实现一些相关功能如:读写配置INI文件。该FTP客户端软件达到了使用方便的目标,希望开发软件的经验能为使用.NET设计开发Windows应用程序FTP客户端软件的初学者提供一些帮助。
  
  图片系统实现1.1 .NET技术简介.NET技术是2000年微软公司推出的全新概念,它代表了一个集合、一个环境、一个编程的基础结构。其目的是将互联网本身作为构建新一代操作系统的基础,对互联网和操作系统的设计思想进行延伸。具体地说,.NET技术就是要在不同的网站之间建立起协定,促进网站之间的协同合作,实现信息的自动交流,从而帮助用户最大限度地获取信息、并对他们的数据进行简单、高效的管理。
  
  1.2 Visual Studio.NET简介Visual Studio .NET是Microsoft为实现其.NET技术而开发的一整套工具组件。它把开发功能强大、性能可靠的企业网络解决方案进行了简化。通过提供终端到终端的网络开发能力以及可伸缩、可复用的服务器端组件。Visual Studio .NET的主要作用在于:第一、提供加速开发过程的高效工具;第二、提供对各种各样的网络应用程序的快速设计能力,即程序员可以借助于Web Forms在开发基于窗体的桌面应用程序时所使用的技巧来创建跨平台、跨浏览器的网络应用程序;第三、利用XML和Web Services来简化分布式。
  
  1.3 开发语言选择C#是一种现代的面向对象的程序开发语言,它使得程序员能够在新的微软.NET平台上快速开发种类丰富的应用程序。.NET平台提供了大量的工具和服务,能够最大限度地发掘和使用计算及通信能力。
  
  由于其一流的面向对象的设计,从构建组件形式的高层商业对象到构造系统级应用程序你都会发现C#将是最合适的。选择使用C#语言设计的组件能够用于Web服务,这样通过Internet可以被运行于任何操作系统上任何编程语言所调用。C#还能为C++程序员提供快捷的开发方式又没有丢掉C和C++的基本特征强大的控制能力,C#与C和C++有着很大程度上的相似性,熟悉C和C++的开发人员很快就能精通C#。
  
  正如前文所述,C#是专门为.NET应用而开发出的语言,这从根本上保证了C#与.NET框架的完美结合。在.NET运行库的支持下,.NET框架的各种优点在C#中表现得淋漓尽致。让我们来看看C#的一些突出的特点,相信了解了这些特点以及本项目后你将会深深体会到“#”──“SHARP”的真正含义:简洁的语法;精心的面向对象设;与Web的紧密结合;完整的安全性与错误处理;版本处理技术;灵活性与兼容性。
  
  图片源文件该Ftp客户端工具用一个Winsocket连接上Ftp服务器,然后向其发送命令。在这个过程中,我们依靠发送——响应的机制。即发送Ftp命令——接收返回的响应信息——分析该信息——执行相关操作——发送下一条命令。在一般意义上,有一个socket用来连接Ftp服务器的相关端口(如默认的21),它负责Ftp命令的发送和接收返回的响应信息。一些操作如“进入目录”、“删除文件”,依靠这个socket发送一条命令就可完成了。
  
  1.客户端与服务器连接FTP是建立在TCP之上的连接,端口号使用21。若客户端与服务器之间成功连接,服务器将返回字符串,如:220 GMS (Version 5.0)。
  
  前三个字符220表示客户端与服务器成功连接,后面的字符会因服务器的不同而不同,但我们只关心前三个字符。
  
  2.用户名和密码认证客户端发送用户名给服务器,如:USER he,如果服务器找到用户名he,将返回字符串,如:331 User name okay, need password。
  
  接着客户端应发送密码给服务器,如:PASS 123,密码正确,返回如:230 User logged in, proceed,如果用户名或密码认证没有通过,返回如:530 Not logged in。
  
  用户名也可以使用匿名,如:USER anonymous,返回如:331 Anonymous access allowed, send identity (e-mail name) as password。
  
  3.应答码及其含义110:重新启动标记应答。在这种情况下文本是确定的,它必须是:MARK yyyy=mmmm其中yyyy是用户进程标记,mmmm是服务器标记。
  
  120:服务在nnn分钟内准备好。

发表评论 (已有 条评论)

  

评论列表

    快来评论,快来抢沙发吧~