1.系统概述
1.1 业务背景
FTP服务提供了对文件传输的支持,对FTP文件传输服务的需求是本程序的背景,当然现在已经有很多FTP的很好的实现,本程序也不可能说做得比知名的那些要好,在这里程序的目的是为了锻炼网络程序设计与实践和软件系统设计与开发实践能力。
1.2 总体目标
实现一个FTP服务,能够在客户端和服务器端查看和传输文件,使用TCP和UDP两种协议方式进行实现,最后会提供一个FTP服务器、一个FTP客户端。
2.系统分析和设计
2.1 系统概述
2.1.1 业务需求描述
FTP服务器需求
为客户端提供查看文件的功能
为客户端提供上传文件的功能
为客户端提供下载文件的功能
能够接受TCP协议的访问方式
能够接受UDP协议的访问方式
FTP客户端需求
能够从服务器上查看文件
能够向服务器上上传文件
能够从服务器上下载文件
能够通过TCP协议访问服务器
能够通过UDP协议访问服务器
2.1.2 外部接口需求硬件接口:无直接硬件接口,只通过OS等软件接口与硬件间接交互
软件接口:相应的JDK、JVM环境,以及标准的浏览器软件
通讯接口:TCP协议、UDP协议
2.1.3 非功能性需求
FTP服务器要求响应时间不能过长,且稳定、可靠;FTP客户端要求传输速度不能过慢,且可随时访问服务器。
2.1.4 约束条件
开发环境
Eclipse-Java IDE,windows7系统
整个项目由Java开发,所以要求系统装有相应的JDK、JVM环境,另外,FTP服务器和客户端要求系统有tcp、udp协议的接口
开发规范
文件命能清楚的描述其功能
代码中的空格与空行上下保持一致
有适量且清楚的注释
界面整洁,方便使用
所有函数及变量有能描述其功能的名字
应注意代码的简洁和优化
2.2 用例模型
2.2.1 用例图
2.2.2 详细描述用例名称
FTP下载文件
描述
用户用FTP客户端从服务器上通过TCP协议下载一个文件
参与者与关注点
FTP客户端(用户):希望能够得到快速地响应,而且文件没有传输错误。FTP服务器:希望能够尽快完成客户端请求,有个较好的吞吐量。
事件流
主成功场景(或基本流程):客户端要求建立和服务器建立用于控制对话的TCP连接;服务器响应要求并完成3次握手建立连接;客户端向服务器发送文件名;服务器接受文件名并建立用于传输的TCP连接;客户端从服务器通过该连接下载文件;传输完毕,客户端断开与服务器的TCP连接;完成。任意TCP连接建立失败:服务器报错给服务器管理员,管理员检查服务器状态是否异常;客户端报错给用户并退出。文件传输过程出错:客户端报错给用户;用户重新使用客户端从服务器上下载文件或放弃下载。
前置条件
服务器已运行
2.3 领域类图
2.3.1 FTP(UDP)类图
2.3.2 FTP(UDP)核心顺序图
2.4 体系结构设计
2.5 程序流程图
FTP服务器
FTP客户端
2.6 测试截图
3.总结
综上所述,程序实现了一个FTP文件传输工具,包括TCP服务器和客户端、UDP服务器和客户端。在简单规模的测试及使用下,程序运行正确且良好,在较大用户数下表现得一般,响应时间不是很好。作为一个学习网络程序设计的程序已经完成了目标。
这次作业中,复习了很多计算机网络的相关知识的同时也学到了很多新的实践方面的知识,锻炼了编程能力,感谢老师的辛勤付出。