- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
客户端设计说明书
南 京 大 学
计算机科学与技术系计算机网络课程设计报告
Alien FTP的设计与实现
客户端设计说明书
完 成 人: 笪庆(061221015)
组 员 : 笪庆(061221015)
方超(061221021)
单梦凡(061221016)
指导教师: 夏耐
2009年1月
目录
一、 概述 3
二、 开发目标 3
二、参考文档 3
三、开发工具和平台 4
四、测试工具 4
五、 程序结构 4
1)类定义 4
2)主要类接口 5
2.1 CAlienFTPClientDlg类 5
2.2 AlienFTPCmd类 6
3) 线程定义 6
五、 功能模块详细设计 7
1) 登陆 7
2) 退出 8
3) 列目录 8
4) 下载文件 9
5) 上传文件 10
6) 下载目录 11
7) 上传目录 12
8) 删除文件 12
9) 删除目录 12
10) 新建目录 13
11) 断点续传 13
12) 状态计算 14
六、 体会 14
附:实现结果 15
Alien FTP客户端设计说明书
笪庆 061221015
概述
客户端感觉上要比服务器端简单一些,其实不然。就我的开发体会而言,服务器端只要侦听21号端口,若有请求就打开控制通道,然后等待用户的命令做出相应的响应,并打开数据通道进行数据传输(目录列表或者文件),除了某些命令(例如USER和PASS),大部分的命令都是独立的,这就使得服务器端并不会存在复杂的有限状态机,特别是当我们并不需要实现其所有命令的时候(实际上我们实现了15条命令,具体见《协议说明书》)。而客户端则是根据功能需求向服务器端发出各种指令来完成的,但是一些稍复杂的功能,例如目录的下载(或上传),服务器端并不提供这条命令,但是我们可以通过发出一系列其服务器提供的命令的组合来达到这个效果,生成这个命令组合便是客户端需要做的事之一。这就有点像服务器提供少量“机器指令”,客户端则用这些少量的“机器指令”去“搭积木”来完成功能需求。除此之外,客户端还要提供更多的图形元素,例如本地和远程的文件目录列表等。
在我们这个客户端的设计中,我们共完成了登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算(比如下载速度,下载时间和剩余时间、传输进度百分比的计算等等)等功能,并通过多线程的方法使得整个软件不至于在下载或上传时出现由于某个函数的繁忙计算而导致界面“死掉”的情况。
由于我们是并行开发的,即我完成客户端,同时方超和单梦凡完成服务器端,所以我在开发时就没法用他们写的服务器端来进行测试。取而代之的是,我用了主流的FTP服务器端软件Serv-U来测试我写的客户端。
开发目标
设计并实现一个符合标准FTP协议规范的,拥有登陆,退出,列目录,下载/上传文件,下载/上传目录,删除文件/目录,新建目录,断点续传以及传输过程中状态计算等功能的FTP客户端软件。
二、参考文档
《协议说明书》(我们的前期文档)
《Visual C++ 6.0网络及Internet开发指南》
《Visual C++网络程序设计实例详解》
《Visual C++网络高级编程》
三、开发工具和平台
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 用于询问用户是否要删除一个远程的非空目录。
RestDialog 本
您可能关注的文档
- 夏代之舞蹈.ppt
- 夜战游萤.doc.doc
- 多元化实验教学创新中的几个关系(刘炳昇).ppt
- 大学英语四级考试语法重点.doc
- 大广高速衡大段LQ9合同段4月份施工月报-衡大管理处.doc
- 大连软件园经理人俱乐部举办第三届企业经理人年会-大连软件行业协会.doc
- 天安云谷产业园临时管理规约.doc-CC+天安云谷-社区.doc
- 天一中学多媒体教室操作手册.doc.doc
- 天有不測風雲,人有旦夕禍福.doc
- 大运通信保障-2G基站.ppt.ppt
- 2024-2030年中国农药制剂行业发展潜力及投资风险分析报告.docx
- 小学心理健康教育活动课20篇.pdf
- 小学学校工作总结(15篇).pdf
- 人教版2024年高考历史模拟试卷及答案(含三套题).doc
- 2024-2030年中国商业发膜行业市场发展趋势与前景展望战略分析报告.docx
- 社区社工服务采购投标方案.doc
- 起重机采购投标方案.doc
- 2024-2030年中国城市垃圾回收行业市场发展现状及发展趋势与风险对策研究报告.docx
- 2024-2030年中国城市沼气发电行业市场发展现状及竞争格局与投资前景研究报告.docx
- 2024-2030年中国地毯纱行业市场发展趋势与前景展望战略分析报告.docx
文档评论(0)