网络协议分析课设.docx
《网络协议分析课设.docx》由会员分享,可在线阅读,更多相关《网络协议分析课设.docx(13页珍藏版)》请在冰豆网上搜索。
![网络协议分析课设.docx](https://file1.bdocx.com/fileroot1/2023-7/21/76a0ceaf-3fd2-4234-8d3e-3c8aa22a2c42/76a0ceaf-3fd2-4234-8d3e-3c8aa22a2c421.gif)
网络协议分析课设
郑州轻工业学院
课程设计报告
题目:
网络协议分析课程设计
姓名:
院(系):
国际教育学院
专业班级:
互联网12级2班
学号:
指导教师:
尹毅峰张俊松杨杰
成绩:
时间:
2016年1月4日至2016年1月8日
目录
1.序言1
1.1研究背景1
1.2开发工具1
2.系统需求分析1
2.1功能需求1
2.2系统模型设计2
2.3系统工作流程设计2
3.系统设计3
3.1实现功能3
3.2函数说明3
3.2.1功能实现函数3
4.系统实现6
4.1界面设计的实现7
4.1.1连接服务器7
4.1.2获取文件列表7
4.1.3断开服务器7
4.1.4上传文件8
4.1.5下载8
4.1.6删除9
5.总结11
参考文献12
1.序言
摘要
FTP是Internet上用来传送文件的协议。
它是为了我们能够在Internet上互相传送文件而制定的文件传送标准,规定了Internet上文件如何传送。
通过FTP协议,我们就可以跟Internet上的FTP服务器进行文件的上传或下载。
本文以实现一个简单易用的FTP客户端为目标,通过分析FTP协议的基本工作原理和FTP的数据传输原理,研究如何使用Java工具对FTP客户端进行设计,选择Java类库中的ftpclient类来实现FTP客户端程序的上传下载等主要功能,并用Jbuilder2006软件提供的一个支持可视化编程的开发环境,从而实现了对FTP客户端的开发.
关键词:
FTP协议、工作原理、ftpclient、上传下载
1.1研究背景
FTP是Internet上最早也是最广的应用,直到今天它仍是最重要和最基本的应用之一。
用FTP将信息下载到本地是一件十分普遍的事。
也随之出现了许多下载软件。
尽管远程登录(Telnet)提供了访问远程文件的极好方法,但怎么也比不上使用自己计算机中的文件方便。
如果用户想使用其它计算机上的文件,最理想的方法就是把它COPY到自己的计算机中,以便在本地计算机上操作。
FTP正是完成这项工作的工具,你可以在任意一个经过文件传输协议(FTP)访问的公共有效的联机数据库或文档中找到你想要的任何东西。
传统的数据库应用系统采用的是客户机/服务器(Client/Server)模式,有高度的交互性,高效的用户界面等优点.
1.2开发工具
Java编程语言,Java编程语言的主要特性是个简单、面向对象、分布式解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
2.系统需求分析
2.1功能需求
1.实现一个图形用户界面的FTP客户端,保证文件的安全传输和存储。
2.通过输入服务器地址、用户名和密码、可以实现远程FTP主机的登录。
3.提供本地文件的上传功能,可对FTP主机文件进行下载、上传、删除、重命名等文件操作。
2.2系统模型设计
图2-1系统模型图
2.3系统工作流程设计
图2-2系统工作流程图
3.系统设计
3.1实现功能
用户登陆用户退出文件上传文件下载
文件删除上翻文件目录下翻文件目录
界面实现部分:
设计为一个用户界面,上面包括各种用户按钮、文本输入栏、状态栏等等。
具体如下:
服务器地址信息输入栏、端口信息输入栏、用户名、密码输入栏、用户登陆(连接)按钮、用户退出(断开连接)按钮、服务器文件显示列表框、下载文件按钮、上传文件按钮、重命名文件按钮、删除文件按钮、上一级目录按钮,下一级目录按钮,状态栏。
3.2函数说明
3.2.1功能实现函数
使用SUN公司提供的FTP客户端类库。
主要包括4个类:
.TelnetInputStream
.TelnetOutputStream
.ftp.FtpClient
.ftp.FtpLoginException
编写FtpBean类实现业务逻辑,包含一个FtpClient类的对象ftpClient。
包含的方法如下:
(1)建立连接
Stringconnect(Stringdir,Stringhostname,intport,Stringusername,Stringpasswd)
使用ftpClient=newFtpClient(hostname,port);
ftpClient.login(username,passwd);
(2)获取文件名列表
ListgetFileNameList()
使用InputStreamReaderisr=null;
BufferedReaderbr=null;
isr=newInputStreamReader(this.ftpClient.nameList(this.getDir()));
br=newBufferedReader(isr);
获取输入流来得到目录中的文件信息
(3)判断路径
booleanisDir(Stringline)
使用line.startsWith("d")来判断
(4)设置路径
booleansetPath(Stringpath)
使用ftpClient.cd(path);实现
(5)上传文件
booleanuploadFile(StringlocalFile,StringtargetFileName)
使用ftpClient.cd(path);实现
(5)上传文件
booleanuploadFile(StringlocalFile,StringtargetFileName)
使用
TelnetOutputStreamtos=null;
RandomAccessFilesendFile=null;
DataOutputStreamdos=null;
try
{
Filefile=newFile(localFile);
sendFile=newRandomAccessFile(file,"r");
sendFile.seek(0);
tos=this.ftpClient.put(targetFileName);
dos=newDataOutputStream(tos);
intch=0;
while(sendFile.getFilePointer(){
ch=sendFile.read();
dos.write(ch);
}
获取文件输出流,读取数据并写入文件
(6)下载文件
booleandownloadFile(StringsrcFileName,StringtargetFileName)
使用TelnetInputStreamtis=null;
RandomAccessFilegetFile=null;
booleanresult=true;
try
{
Filefile=newFile(targetFileName);
getFile=newRandomAccessFile(file,"rw");
getFile.seek(0);
tis=this.ftpClient.get(srcFileName);
DataInputStreamdis=newDataInputStream(tis);
intch=0;
while(true)
{
ch=dis.read();
if(ch<0)
{
break;
}
getFile.write(ch)
}
getFile.close();
}
获取文件输入流,读取数据并写入文件
(7)进入上一级文件目录
up()
使用ftpClient.cdUp();实现
(8)进入下一级文件目录
downDir()
使用上面的方法来实现下一级文件目录的访问
(9)给文件重命名
booleanrenameFile(StringoldName,StringnewName)
使用ftpClient.rename(oldName,newName);来实现
(10)删除文件
deleteFile(StringfileName)
使用Stringcmd="DELE"+fileName+"\r\n";
ftpClient.sendServer(cmd);
来实现
(11)获取当前路径
StringgetDir()
使用returnthis.ftpClient.pwd();实现
(12)关闭连接
Stringclose()
使用ftpClient.closeServer();实现
4.系统实现
4.1界面设计的实现
4.1.1连接服务器
单击连接若服务器名称、端口、用户名和密码对的前提下登录到指定的服务器上面,弹出“登录成功”对话框,并在下方状态栏中显示“登录成功
图4.1连接服务器
4.1.2获取文件列表
登录到服务器上面之后,获取在服务器用户的主文件及文件夹
并在下方状态栏显示
图4.2获取文件列表
4.1.3断开服务器
当用户需要关闭连接时,单机“断开连接”就可断开与服务器的连接,在状态栏上显示“连接已断开”,此时并不退出客户端。
图4.3断开服务器
4.1.4上传文件
选中FTP服务器上的文件夹,右击弹出快捷菜单单击上传显示上传对话框,选择需要传的文件,单击打开即可上传,上传成功显示“上传成功”对户框,并在状态栏显示当前状态。
4.1.5下载
选中FTP服务器上的文件夹右击弹出快捷菜单,单击下载.
图4.4下载
弹出下载主机路径,指定目录以及文件名称,单击打开
图4.5存储下载文件
下载成功会弹出对话框“下载文件+源文件具体目录+成功”
图4.6下载成功
4.1.6删除
选中需要删除的文件,右击弹出快捷菜单,单击删除
图4.7删除
弹出删除文件成功消息框
图4.7删除成功
此时的文件夹已经把选中的从列表中移除。
5.总结
通过为期一周的课程设计,我对FTP又有了重新的认识,加深了我对它的理解,虽然说在课程设计中遇到了很多问题和困难,但是在老师的指导下及我和其他小组成员的积极探讨和研究下,我终于完成了小组的课程设计——FTP客户端的设计及实现服务器的搭建。
虽然我们在该系统功能上还有许多不足,但通过这一段时间的设计,从拟定方案,设计模块,解决开发过程中遇到的各种困难,最终实现了该文件传输系统的基本功能。
使我们对FTP客户端有了更深的了解。
FTP的目标是提高文件的共享性和可靠高效地传送数据,而FTP客户端的作用是使用户方便的连接和访问FTP客户端。
该设计实现了简单的FTP客户端,选择java类库使客户通过FTP客户端能简单地连接和访问,上传、下载、删除、刷新、返回上级目录等基本的操作功能。
参考文献
[1]杨树林,胡洁萍Java语言最新实用案例教程。
北京:
科学出版社,2006。
[2]叶俊明软件工程。
北京:
清华大学出版社,2006:
第三章软件需求分析基础。
[3]W.RichardStevens.TCP/TP详解卷1:
协议。
北京:
机械工业出版社,2000。
[4]谢希仁计算机网络(第五版)。
北京:
电子工业出版社,2006。
[5]赵生慧等编译Java面向对象程序设计(第二版)。
北京:
中国水利水电出版社,2010。