联系方式: 微信:biyebang QQ: 629001810
系统设计
互联网的一大特点是实现信息共享,文件传输是信息共享的十分重要的内容之一。随之出现了许多FTP服务器来共享一些信息资源,编写一个操作简单,方便的FTP客户端来下载这些资源受到了人们的极大欢迎。 FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。辅助管理模块实现一些相关功能如:读写配置INI文件。该FTP客户端软件达到了使用方便的目标,希望开发软件的经验能为使用.NET设计开发Windows应用程序FTP客户端软件的初学者提供一些帮助。 系统实现 .NET技术是2000年微软公司推出的全新概念,它代表了一个集合、一个环境、一个编程的基础结构。其目的是将互联网本身作为构建新一代操作系统的基础,对互联网和操作系统的设计思想进行延伸。具体地说,.NET技术就是要在不同的网站之间建立起协定,促进网站之间的协同合作,实现信息的自动交流,从而帮助用户最大限度地获取信息、并对他们的数据进行简单、高效的管理。 Visual Studio .NET是Microsoft为实现其.NET技术而开发的一整套工具组件。它把开发功能强大、性能可靠的企业网络解决方案进行了简化。通过提供终端到终端的网络开发能力以及可伸缩、可复用的服务器端组件。Visual Studio .NET的主要作用在于:第一、提供加速开发过程的高效工具;第二、提供对各种各样的网络应用程序的快速设计能力,即程序员可以借助于Web Forms在开发基于窗体的桌面应用程序时所使用的技巧来创建跨平台、跨浏览器的网络应用程序;第三、利用XML和Web Services来简化分布式。 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分钟内准备好。 4.3.1 连接管理的程序实现 在用户打开软件后进入主窗体(MFFTP.cs),在连接服务器输入框中输入IP地址、用户名及密码后。先发送IP地址和端口号到服务器,然后对其应答分析,如果应答码为220表示对新用户服务准备好,继续发送用户名返回应答码331表示用户名正确需要口令。最后发送密码直到返回应答码230表示用户登录成功。其主要代码程序如下: public void Connect() { socketControl = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort); // 链接 try { socketControl.Connect(ep); } catch(Exception) { throw new IOException("Couldn't connect to remote server"); } // 获取应答码 ReadReply(); if(iReplyCode != 220) { DisConnect(); throw new IOException(strReply.Substring(4)); } // 登录 SendCommand("USER "+strRemoteUser); if( !(iReplyCode == 331 || iReplyCode == 230) ) { CloseSocketConnect();//关闭连接 throw new IOException(strReply.Substring(4)); } if( iReplyCode != 230 ) { SendCommand("PASS "+strRemotePass); if( !(iReplyCode == 230 || iReplyCode == 202) ) { CloseSocketConnect();//关闭连接 throw new IOException(strReply.Substring(4)); } } bConnected = true; // 切换到目录 ChDir(strRemotePath); }
1.1 .NET技术简介
1.2 Visual Studio.NET简介
1.3 开发语言选择
版权所有© 帮我毕业网 并保留所有权利