ftp服务客户端设计

ftp服务客户端设计

ID:16154464

大小:555.50 KB

页数:9页

时间:2018-08-08

ftp服务客户端设计_第1页
ftp服务客户端设计_第2页
ftp服务客户端设计_第3页
ftp服务客户端设计_第4页
ftp服务客户端设计_第5页
资源描述:

《ftp服务客户端设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、FTP客户端设计说明书一、概述客户端感觉上要比服务器端简单一些,其实不然。就我的开发体会而言,服务器端只要侦听21号端口,若有请求就打开控制通道,然后等待用户的命令做出相应的响应,并打开数据通道进行数据传输(目录列表或者文件),除了某些命令(例如USER和PASS),大部分的命令都是独立的,这就使得服务器端并不会存在复杂的有限状态机,特别是当我们并不需要实现其所有命令的时候(实际上我们实现了15条命令,具体见《协议说明书》)。而客户端则是根据功能需求向服务器端发出各种指令来完成的,但是一些稍复杂的功能,例如目录的下载(或上传),服务器端并不提供这条命令,但是我们可

2、以通过发出一系列其服务器提供的命令的组合来达到这个效果,生成这个命令组合便是客户端需要做的事之一。这就有点像服务器提供少量“机器指令”,客户端则用这些少量的“机器指令”去“搭积木”来完成功能需求。除此之外,客户端还要提供更多的图形元素,例如本地和远程的文件目录列表等。在我们这个客户端的设计中,我们共完成了登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算(比如下载速度,下载时间和剩余时间、传输进度百分比的计算等等)等功能,并通过多线程的方法使得整个软件不至于在下载或上传时出现由于某个函数的繁忙计算而导致界面

3、“死掉”的情况。由于我们是并行开发的,即我完成客户端,同时方超和单梦凡完成服务器端,所以我在开发时就没法用他们写的服务器端来进行测试。取而代之的是,我用了主流的FTP服务器端软件Serv-U来测试我写的客户端。二、开发目标设计并实现一个符合标准FTP协议规范的,拥有登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算等功能的FTP客户端软件。三、开发工具和平台VisualC++6.0,在WindowsXPSP3下开发。之所以选择VisualC++,是因为我本身对于VC的图形界面编程较为熟悉,相对而言对于jav

4、a的图形界面的编程不是很熟悉(虽然java是以网络应用见长的)。而不同的语言提供的socket接口又大体上差不多,所以我选择了VC来作为开发工具。四、测试工具Serv-U6.3。正如上文所说,我们是并行开发的,所以我的客户端只能通过连接现有的FTP服务端软件来测试,这里我选择了使用较广,操作方便的Serv-U。五、程序结构1)类定义classspecificationCAlienFTPClientDlg主对话框类,用于图形界面的处理,通过调用AlienFTPCmd类提供的函数实现与服务器的连接与交互。AlienFTPCmdFTP命令处理类,该类主要负责实现功能需求

5、的各种函数,供CAlienFTPClientDlg直接调用,同时也提供一些基本操作使CAlienFTPClientDlg可以通过这些操作的组合完成复杂的功能。GetDirName用于弹出对话框让用户输入待新建的目录的名称RmdDialog用于询问用户是否要删除一个远程的非空目录。2)主要类接口2.1CAlienFTPClientDlg类classmemberfunctionFindLocFile根据指定的本地路径将该路径下的文件以列表的形式在主对话框的ListControl中显示出来OnInsertFile被FindLocFile调用,用于向表示当前的本地目录的L

6、istControl插入一条目录/文件信息InsertServerFile用于向表示当前的远程目录的ListControl插入一条目录/文件信息GetFileIcon用于查找本地文件/目录的图标GetFileIcon2用于根据远程文件/目录的的文件类型在本机查找对应类型注册的图标RemoveLocalDirectory删除本地目录OnDblclkListLocal本地文件列表的双击响应事件函数,用户进入某个本地目录,并显示该目录里的文件列表OnButtonBacklocal本地文件列表的返回上一目录的响应函数OnButtonConnect与服务器连接的函数OnBu

7、ttonLogoff与服务器断开的函数OnDblclkListServer远程文件列表的双击响应事件函数,用户进入某个远程目录,并显示该目录里的文件列表OnButtonBackserver远程文件列表的返回上一目录的响应函数OnDownload下载,在该函数中,将启动一个线程用于下载任务OnUpload上传,在该函数中,将启动一个线程用于上传任务OnLocalDel删除本地某个文件OnServerDel删除远程某个文件OnLocNewDir在本地的当前路径下新建目录OnSerNewDir在远程的当前路径下新建目录OnRefreshLoc刷新本地文件列表OnRefr

8、eshSe

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。