毕业设计(论文)基于C#的FTP客户端设计与实现.doc
《毕业设计(论文)基于C#的FTP客户端设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于C#的FTP客户端设计与实现.doc(34页珍藏版)》请在三一办公上搜索。
1、基于C#的FTP客户端实现实验课程: C#期末大作业 学生姓名: 学 号: 专业班级: 指导老师: 完成日期: 2014年 12 月 20 日 目 录摘要1引言11. FTP协议分析11.1. FTP的工作原理11.2. FTP工作模式21.3. FTP传输模式42. FTP客户端总体设计52.1. 设计目的及开发环境52.1.1. 设计目的与.NET环境简介52.1.3. FtpWebRequest 类62.2. 系统UML分析62.2.1. FTP客户端用例图62.2.2. FTP客户端主要序列图与活动图82.2.4. FTP客户端类图122.3. 系统功能模块152.3.1. 系统整体框
2、架图152.3.2. 客户端功能模块152.3.3. 客户端界面设计162.4. 数据流程图192.4.1. 客户端连接流程图192.4.2. 上传子模块流程图212.4.3. 下载子模块流程图223. FTP客户端程序实现233.1. WPF界面设计233.1.1. 首页界面详细设计233.1.2. 文件传输界面详细设计243.1.3. 操作历史记录显示界面详细设计263.1.4. 常用地址查询模块设计263.2. 功能模块实现273.2.1. 连接服务器273.2.2. 显示服务器端文件清单283.2.3. 上传文件293.2.4. 下载文件293.2.5. 查询历史记录303.2.6.
3、常用地址管理314. 数据库建设314.1. 数据库表结构314.2. 数据库关系模型324.3. 数据库ER图334.4. 数据库建表语句335. 结语34参考文献35基于C#的FTP客户端设计与实现图 1-1 FTP工作模式图 上图中用户PI开始控制连接,控制连接与Telnet协议很象。在开始阶段,标准FTP命令由用户PI产生并通图 1-2过控制连接传送到服务器进程。服务器PI向用户PI返回标准应答。FTP命令指定数据连接参数和文件系统操作。用户DTP在特定数据端口侦听,服务器开始数据连接并以指定的参数开始数据传输。数据端口不必在开始FTP命令的机器上,但用户或用户FTP进程必须确定它在指
4、定的数据端口上侦听.这个数据连接是全双工的。1. FTP客户端总体设计1.1. 设计目的及开发环境1.1.1. 设计目的 FTP早已应用在网络的各个方面,比如我们在访问网络上的资源时,经常会遇到需要连接FTP服务器来下载,或者你制作了一个网站,想要将其上传至服务器,让大家能够访问它,这个时候就会用到FTP客户端。虽然平时使用windows自带的IE浏览器即可实现对FTP服务器的访问,但是IE只是个很粗糙的FTP客户端。IE浏览器在6.0以下的版本不支持PASV方式访问服务器,而且IE浏览器在登录FTP服务器的时候,无法查看返回的信息,在出错的时候,无法找到错误的原因,因此在使用上很不方便。现在
5、大多数的FTP客户端软件都是收费版的,而且以英文版居多,使用上操作很复杂,目前流行的有CoreFtp、AceFtp、FtpVoyager等,但是大多数用户并不习惯使用这些软件。本文所设计的FTP客户端则适合大多数用户使用,界面设计的很简单,使用户可以一目了然,而且具备FTP客户端的基本功能,可以作为下载、上传文件的工具来使用。1.1.2. NET环境简介 Visual StudioNET是一个开发和运行软件的新环境,便于开发基于网络的服务,拥有丰富的运行库,支持多种编程语言编写的组件,具有跨语言平台的互操作能力。C#是NET平台中最重要的语言,它本身没有类库,而是使用NET框架所提供的统一类库
6、,用户也可以定义特定域的属性,并将它们应用于任何语言元素如类、接口等,所以对网络应用程序提供完整的支援,这使得程序员能够在新的微软NET平台上快速开发出种类丰富的应用程序。1.1.3. FtpWebRequest 类C#.NET类库的存在使它适合于一个不断发展的环境。在类库中我们可以自由地加入新的方法和实例变量而不会影响用户程序的执行。NET平台封装了实现FTP功能的一些基础类,位于命名空间为SystemNet下的FtpWebRequest类用于实现文件传输协议(FTP)客户端的一些基本功能。二次封装了类FFP_Class,其成员包括string tipserveriP (服务器地址)、str
7、ing ftpUseriD(登陆账号)、string ftpPassword (登录密码)和FtpWebRequest reqFTP。本文所使用的FtpWebRequest类的构造方法和主要方法如下:FtpWebRequest reqFtp = (FtpWebRequest)FtpWebRequest.Create(new Uri(Path);此构造函数利用给出的主机名建立一条FTP连接,目的连接地址为Path所指定的地址,并建立URI对象。reqFtp.UseBinary = true;这条程序指定传输类型为Binary。 reqFtp.Credentials = new NetworkCr
8、edential(ftpUserId, ftpPassword);此方法利用参数ftpUserId和ftpPassword登录到FTP服务器。使用过Internet的用户应该知道,匿名FTP服务器的登录用户名为anonymous,密码一般用自己的电子邮件地址。1.2. 系统UML分析1.2.1. FTP客户端用例图1) 0层用例图图 1-1 0层用例图用户通过Ftp客户端系统进行文件传输。2) 1层用例图图 1-2 1层用例图在Ftp客户端系统中,主要包括六个用例,分别是列出服务器端文件列表(ListServerFile)、从服务器端下载文件(DownLoadFile)、向服务器端上传文件(U
9、pLoadFile)、列出历史记录(ListHistory)、对常用地址的操作(OpeatUsefulAddress)和输入用户登录信息(EnterUserInfo)。其中,每一个用例都包含EnterUserInfo用例,列出服务器文件列表(ListServerFile)用例扩展了下载文件(DownLoadFile)用例。3) 二层用例图a. ListServerFileList子用例图。图 1-3 2层用例图ListServerFileList用例包含了两个子用例,分别为列出服务器端文件列表(ShowServerFileList)、打开目录(ChangeDirectory)。打开目录用例指的
10、是打开服务器端子目录,获取子目录。b. OperatUsefulAddress子用例图。图 1-4 OperatUsefulAddress子用例图OperatUsefulAddress用例包含了两个子用例图,分别为显示常用的ftp服务器端地址(ShowUserfulAddress)、添加常用的服务器地址(AddUsefulAddress)。1.2.2. FTP客户端主要序列图1) ShowServerFileList序列图图 1-5 ShowServerFileList序列图2) ChangeDirectory序列图图 1-6 ChangeDirectory序列图3) DownLoadFile
11、序列图图 1-7 DownLoadFile序列图4) UpLoadFile序列图图 1-8 UpLoadFile序列图5) ListHistory序列图图 1-9 ListHistory序列图 6) AddUsefulAddress序列图图 1-10 AddUsefulAddress序列图1.2.3. FTP客户端主要活动图1) DownLoadFile活动图图 1-11 DownLoadFile活动图2) UpLoadFile活动图图 1-12 UpLoadFile活动图1.2.4. FTP客户端类图1) 类关系图图 1-13 FTP客户端类图2) 边界类-IndexPage、DownLoa
12、dPage、HisetoryPage、UsefulAddressPage图 1-14 边界类客户端中的主要边界类是显示各功能模块的页面,包括显示主页的IndexPage,显示下载界面的DownLoadPage,显示历史记录的HistoryPage,显示常用地址的UsefulAddressPage。用于与用户的交互,获取用户输入的信息,显示信息。3) 控制类-DataBaseHander图 1-15 控制类-DataBaseHande控制类-DataBaseHande,封装了对于数据库的操作,是数据库操作类,包括的方法有:插入历史记录(InsertHistory)查找历史记录(selectHis
13、tory)插入常用地址(InsertUsefulAddr)查找常用地址(selectUsefulAddr)删除常用地址(DeleteUsefulAddr)系统通过调用该类对象的该类方法实现对数据库的操作。4) 控制类-FtpHander图 1-16 控制类-FtpHander控制类-FtpHander,封装了对于Ftp文件传输的操作,包括的方法有:连接Ftp客户端(connect)获取服务器端文件目录(getServerFileList)上传文件(UpLoadFile)下载文件(DownLoadFile)通过该类实现对于文件的操作和服务器的连接和方法请求。5) 控制类-LocalHander图
14、 1-17 控制类-LocalHander控制类-LocalHander,封装了对于本地路径的操作,包括的方法有:获取本地目录下的文件列表(GetLocalFileList)客户端通过该类实现对本地文件的操作。6) 角色类-FtpAddr图 1-18 角色类-FtpAddr角色类-FtpAddr,表示Ftp服务器端的抽象类。属性:Ftp服务器端名称(FtpName)string型Ftp服务器端地址(FtpAddress)string型方法:获取服务器端名称(getFtpName)设置服务器端名称(setFtpName)获取服务器端IP地址(getFtpIPaddr)设置服务器端IP地址(set
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 C# FTP 客户端 设计 实现
链接地址:https://www.31ppt.com/p-2385419.html