- 5
- 0
- 约4.41千字
- 约 9页
- 2017-06-30 发布于湖北
- 举报
ftp服务客户端设计
FTP客户端设计说明书
概述
客户端感觉上要比服务器端简单一些,其实不然。就我的开发体会而言,服务器端只要侦听21号端口,若有请求就打开控制通道,然后等待用户的命令做出相应的响应,并打开数据通道进行数据传输(目录列表或者文件),除了某些命令(例如USER和PASS),大部分的命令都是独立的,这就使得服务器端并不会存在复杂的有限状态机,特别是当我们并不需要实现其所有命令的时候(实际上我们实现了15条命令,具体见《协议说明书》)。而客户端则是根据功能需求向服务器端发出各种指令来完成的,但是一些稍复杂的功能,例如目录的下载(或上传),服务器端并不提供这条命令,但是我们可以通过发出一系列其服务器提供的命令的组合来达到这个效果,生成这个命令组合便是客户端需要做的事之一。这就有点像服务器提供少量“机器指令”,客户端则用这些少量的“机器指令”去“搭积木”来完成功能需求。除此之外,客户端还要提供更多的图形元素,例如本地和远程的文件目录列表等。
在我们这个客户端的设计中,我们共完成了登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算(比如下载速度,下载时间和剩余时间、传输进度百分比的计算等等)等功能,并通过多线程的方法使得整个软件不至于在下载或上传时出现由于某个函数的繁忙计算而导致界面“死掉”的情况。
由于我们是并行开发的,即我完成客户端,同时方超和单梦凡完成服务器端,所以我在开发时就没法用他们写的服务器端来进行测试。取而代之的是,我用了主流的FTP服务器端软件Serv-U来测试我写的客户端。
开发目标
设计并实现一个符合标准FTP协议规范的,拥有登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算等功能的FTP客户端软件。
三、开发工具和平台
Visual C++ 6.0,在Windows XP SP3下开发。
之所以选择Visual C++,是因为我本身对于VC的图形界面编程较为熟悉,相对而言对于java的图形界面的编程不是很熟悉(虽然java是以网络应用见长的)。而不同的语言提供的socket接口又大体上差不多,所以我选择了VC来作为开发工具。
四、测试工具
Serv-U 6.3。
正如上文所说,我们是并行开发的,所以我的客户端只能通过连接现有的FTP服务端软件来测试,这里我选择了使用较广,操作方便的Serv-U。
程序结构
1)类定义
class specification
CAlienFTPClientDlg 主对话框类,用于图形界面的处理,通过调用AlienFTPCmd类提供的函数实现与服务器的连接与交互。
AlienFTPCmd FTP命令处理类,该类主要负责实现功能需求的各种函数,供CAlienFTPClientDlg直接调用,同时也提供一些基本操作使CAlienFTPClientDlg可以通过这些操作的组合完成复杂的功能。 GetDirName 用于弹出对话框让用户输入待新建的目录的名称 RmdDialog 用于询问用户是否要删除一个远程的非空目录。
2)主要类接口
2.1 CAlienFTPClientDlg类
classmember function FindLocFile 根据指定的本地路径将该路径下的文件以列表的形式在主对话框的List Control中显示出来 OnInsertFile 被FindLocFile调用,用于向表示当前的本地目录的List Control插入一条目录/文件信息 InsertServerFile 用于向表示当前的远程目录的List Control插入一条目录/文件信息 GetFileIcon 用于查找本地文件/目录的图标 GetFileIcon2 用于根据远程文件/目录的的文件类型在本机查找对应类型注册的图标 RemoveLocalDirectory 删除本地目录 OnDblclkListLocal 本地文件列表的双击响应事件函数,用户进入某个本地目录,并显示该目录里的文件列表 OnButtonBacklocal 本地文件列表的返回上一目录的响应函数 OnButtonConnect 与服务器连接的函数 OnButtonLogoff 与服务器断开的函数 OnDblclkListServer 远程文件列表的双击响应事件函数,用户进入某个远程目录,并显示该目录里的文件列表 OnButtonBackserver 远程文件列表的返回上一目录的响应函数 OnDownload 下载,在该函数中,将启动一个线程用于下载任务 OnUpload 上传,在该函数中,将启动一个线程用于上传任务 OnLocalDel 删除本
您可能关注的文档
最近下载
- 肺癌护理指南更新解读.pptx VIP
- 钢板桩基坑支护计算书.docx VIP
- 2023-2024学年重庆市康德卷高一数学第一学期期末考试试题含解析.doc VIP
- 2022-2023学年教科版(广州)五年级英语上册期末测试卷(含答案).pdf VIP
- 内江市2022-2023学年七年级上学期期末数学试题.docx VIP
- 【《基于自由现金流模型的企业价值评估研究-以新能源汽车企业比亚迪为例(数据论文)》10000字】 .pdf VIP
- 四川省成都市金牛区2023-2024学年三年级上学期语文期末试卷(含答案).pdf VIP
- 《乳腺癌诊疗指南》.pptx VIP
- 国家职业标准-农艺工.pdf VIP
- 仙剑98 超级详细攻略.docx VIP
原创力文档

文档评论(0)