这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的理念缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的各类系统很难达到老师的要求。
为了大家能够顺利并以最少的精力通过毕设,学长分享优质毕业设计项目,需要的自取。
目录
1.说明
FTP客户端软件是在了解FTP工作原理后,利用C#语言来设计和开发的。FTP客户端分为连接模块、文件管理模块、文件传输模块和辅助管理模块。连接模块实现主机与服务器的连接的功能;文件管理模块实现新建文件、删除文件等功能;文件传输模块实现主机与服务器连接成功后上传和下载文件功能。辅助管理模块实现一些相关功能如:读写配置INI文件。该FTP客户端软件达到了使用方便的目标,希望开发软件的经验能为使用.NET设计开发Windows应用程序FTP客户端软件的初学者提供一些帮助。
2.FTP软件详细设计与实现
2.1.软件总体分析与设计
根据需求分析,按照系统开发的基本观点对功能进行分解,从功能上可对模块作如下划分:
1.连接管理模块:主要完成主机与服务器之间的连接与关闭操作。
2.文件管理模块:主要完成文件的显示、新建文件、删除文件等。
3.文件传输模块:主要完成主机与服务器连接成功以后文件的上传与下载。
4.辅助功能模块:主要是保存一些登录信息和一些简单的配置信息。
2.2.各模块具体设计
2.2.1.连接管理设计
该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分钟内准备好。
125:数据连接已打开,准备传送。
150:文件状态良好,打开数据连接。
200:命令成功。
202:命令未实现。
211:系统状态或系统帮助响应。
212:目录状态。
213:文件状态。
214:帮助信息,信息仅对人类用户有用。
215:名字系统类型。
220:对新用户服务准备好。
221:服务关闭控制连接,可以退出登录。
225:数据连接打开,无传输正在进行。
226:关闭数据连接,请求的文件操作成功。
227:进入被动模式。
230:用户登录。
250:请求的文件操作完成。
257:创建“PATHNAME”。
331:用户名正确,需要口令。
332:登录时需要账户信息。
350:请求的文件操作需要进一步命令。
421:不能提供服务,关闭控制连接。
425:不能打开数据连接。
426:关闭连接,中止传输。
450:请求的文件操作未执行。
451:中止请求的操作:有本地错误。
452:未执行请求的操作:系统存储空间不足。
500:格式错误,命令不可识别。
501:参数语法错误。
502:命令未实现。
503:命令顺序错误。
504:此参数下的命令功能未实现。
530:未登录。
532:存储文件需要账户信息。
550:未执行请求的操作。
551:请求操作中止:页类型未知。
552:请求的文件操作中止,存储分配溢出。
553:未执行请求的操作:文件名不合法。
2.2.2.文件管理设计
文件管理具有文件的主要是新建文件夹、删除文件,使用DirectoryInfo类的Delete()方法和CreateDirectory()方法来实现。文件属性的设置包括:是否只读、是否隐藏、是否归档,用File类和Directory类来完成对文件和文件夹的属性设置。
2.2.3.文件传输设计
FTP协议用两个连接来达到客户机与服务器之间交换数据的目的如图3。先建立第一个连接——控制连接,它用于传送命令和响应。在建立第二个连接——数据连接,用于数据传输。FTP提供了两种方式来建立数据连接,一种用PORT命令,一种用PASV命令。我们使用后者。客户端发送PASV命令给服务器,服务器返回IP地址和端口号,用来提供给客户端进行数据连接。如:227 Entering Passive Mode (10,175,125,49,9,17)括号里6个数字中前4个数字表示IP地址10.175.125.49,后2个数字表示端口号,这2个数字按如下公式计算端口号:9*256+17=2321这样,客户端就可用IP地址10.175.125.49和端口号2321连接服务器,建立数据连接。
2.2.4.辅助功能设计
根据需求功能需要完成文件的上传及下载必须要完成一些相关的辅助功能:
1.获取本地主机的系统驱动器信息功能,需要在项目引用中添加COM标签中的Microsoft Scripting Runtime组件,来获取系统驱动器信息。
2.目录选择功能:在目录输入框中可以根据目录来显示所选定的文件夹下所有文件及文件夹信息,信息包括文件路径、文件创建日期、文件大小,利用GetFileSystemEntries()方法来完成。
3.信息保存功能:信息的保存利用读写INI文件来实现,INI文件读写操作由调用系统API函数来完成。具体调用WritePrivateProfileString()方法实现写入操作,用GetPrivateProfileString()方法实现读操作。
2.3.模块的程序实现
其他内容就不一一展示了,如需对应相关资料,可以评论或者下方联系我,私信都可以。