完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx
- 文档编号:1572255
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:25
- 大小:279.68KB
完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx
《完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx》由会员分享,可在线阅读,更多相关《完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx(25页珍藏版)》请在冰点文库上搜索。
明确设计目的,网上、图书馆搜查资料
小组成员共同参与
2
界面设计,连接服务器,获取文件列表,断开连接
3
上传文件、下载文件
由
4
删除、重命名文件及刷新列表
5
返回上级目录,查看日志信息
6
最后整合测试修改
指导教师签字:
年月日
教研室审核意见:
教研室主任签字:
第一章序言3
1.1课题来源3
1.2开发工具4
第二章系统需求分析5
2.1功能需求5
2.2系统模型设计5
2.3系统工作流程设计5
第三章系统设计6
3.1实现功能6
3.2函数说明6
3.2.1界面设计代码6
3.2.2功能实现函数10
第四章系统实现13
4.1界面设计的实现13
4.1.1连接服务器13
4.1.2获取文件列表14
4.1.3断开服务器15
4.1.4上传文件16
4.1.5下载18
4.1.6重命名19
4.1.7删除21
4.1.8刷新22
4.1.9返回上一目录23
4.1.10查看日志信息23
第五章总结24
第六章参考文献25
第一章序言
——耿桂花
1.1课题来源
FTP(FileTransferProtocol,FTP)是TCPIP网络上两台计算机传送文件的协议,FTP是在TCPIP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。
FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。
FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而不需要进一步处理,就像MIME或Unencode一样。
但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。
FTP服务一般运行在20和21两个端口。
端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。
当数据通过数据流传输时,控制流处于空闲状态。
而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。
此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。
FTP客户端主要目标是:
促进文件的共享(计算机程序或数据);
鼓励间接或者隐式的使用远程计算机;
向用户屏蔽不同主机中各种文件存储系统的细节;
可靠和高效的传输数据。
因此,开发FTP客户端成为一个很有必要的事情。
1.2开发工具
随着程序设计技术的改革和计算机环境的改变,Java语言也得到了迅速发展。
一方面,C++等面向对象程序设计语言的发展为Java提供了基础。
事实上,Java也大量继承了C以及C++的成果,并增加了体现程序设计发展状态的功能。
另一方面,网络及Internet的发展对程序设计提出了新的要求,为Java的发展注入了强大的动力。
正是Internet的快速发展和普及,改变了传统的计算模式,促进了Java的普及与流行。
它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。
Java编程语言的风格十分接近C、C++语言。
Java是一个纯的面向对象的程序设计语言,它继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。
在JavaSE1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了Java程序的运行效率。
但在J2SE1.4.2发布后,Java的执行速度有了大幅提升。
与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术。
全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。
“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同。
这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Java编程语言的主要特性是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
第二章系统需求分析
——方莹莹
2.1功能需求
1.实现一个图形用户界面的FTP客户端,保证文件的安全传输和存储。
2.通过输入服务器地址、用户名和密码、可以实现远程FTP主机的登录。
3.提供本地文件的上传功能,可对FTP主机文件进行下载、上传、删除、重命名等文件操作。
4.可以查看一系列的操作的日志信息。
2.2系统模型设计
FTP的基本模型
2.3系统工作流程设计
第三章系统设计
——高进
3.1实现功能
用户登陆、用户退出、文件上传、文件下载、文件重命名
文件删除、上翻文件目录、下翻文件目录
界面实现部分:
设计为一个用户界面,上面包括各种用户按钮、文本输入栏、状态栏等等。
具体如下:
服务器地址信息输入栏、端口信息输入栏、用户名、密码输入栏、用户登陆(连接)按钮、用户退出(断开连接)按钮、服务器文件显示列表框、下载文件按钮、上传文件按钮、重命名文件按钮、删除文件按钮、上一级目录按钮,下一级目录按钮,状态栏。
3.2函数说明
3.2.1界面设计代码
每个按钮对象注册监听器对应相关的业务逻辑,调用FtpBean类中的对应方法。
下面是页面部分实现的主要代码以及相关说明:
packageftp;
importjava.awt.event.*;
importjava.awt.*;
importjava.util.*;
importjava.util.List;
importjava.util.StringTokenizer;
importjava.io.*;
importjavax.swing.*;
importjavax.swing.event.*;
publicclassFTPextendsJFrame
{
FtpBeanftp=newFtpBean();
FTP客户端对象
privateFileWriterwrite;
privatePrintWriterout;
privateDatetime;
privateJTextFieldurl=newJTextField();
FTP服务器地址
privateJTextFieldport=newJTextField();
FTP服务器端口
privateJTextFieldusername=newJTextField();
用户名
privateJTextFieldpassword=newJTextField();
密码
privateJTextFieldstatus=newJTextField();
当前状态
privateJButtonconnectButton=newJButton("
连接"
);
连接按钮
privateJButtoncloseButton=newJButton("
断开连接"
断开连接按钮
privateJPopupMenupopup=newJPopupMenu();
;
privateJMenuItemrefresh=newJMenuItem("
刷新"
右键弹出菜单
privateJMenuItemdelete=newJMenuItem("
删除"
privateJMenuItemdownload=newJMenuItem("
下载"
privateJMenuItemupload=newJMenuItem("
上传"
privateJMenuItemrename=newJMenuItem("
重命名"
privateJMenuItemupDir=newJMenuItem("
上级目录"
privateJMenuItemshowLog=newJMenuItem("
显示日志信息"
finalDefaultListModelm=newDefaultListModel();
显示文件列表
JListfileList=newJList(m);
JScrollPanefileScrollPane;
privateDimensionfaceSize=newDimension(400,600);
框架大小
publicFTP()
{
init();
createPopup();
弹出菜单
time=newDate();
try
write=newFileWriter("
log.txt"
true);
out=newPrintWriter(write,true);
}
catch(IOExceptionioe)
{
ioe.printStackTrace();
}
status.setEditable(false);
this.add(status,BorderLayout.SOUTH);
下方
connectButton.addActionListener(newActionListener()
publicvoidactionPerformed(ActionEvente)
{
connect();
});
closeButton.addActionListener(newActionListener()
close();
out.println(time+"
离开服务器:
"
+url.getText());
});
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
添加框架的关闭事件处理
this.pack();
this.setSize(faceSize);
设置框架的大小
DimensionscreenSize=Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((int)(screenSize.width-faceSize.getWidth())2,
(int)(screenSize."
password.setText("
gaojin"
JPanelno1=newJPanel();
no1.setLayout(newBorderLayout());
no1.add(newJLabel("
服务器:
),BorderLayout.WEST);
no1.add(url,BorderLayout.CENTER);
JPanelno2=newJPanel();
no2.setLayout(newBorderLayout());
no2.add(newJLabel("
端口号:
no2.add(port,BorderLayout.CENTER);
JPanelno3=newJPanel();
no3.setLayout(newBorderLayout());
no3.add(newJLabel("
用户名:
no3.add(username,BorderLayout.CENTER);
JPanelno4=newJPanel();
no4.setLayout(newBorderLayout());
no4.add(newJLabel("
密码:
no4.add(password,BorderLayout.CENTER);
up.add(no1);
up.add(no2);
up.add(no3);
up.add(no4);
up.add(connectButton);
up.add(closeButton);
closeButton.setEnabled(false);
this.add(up,BorderLayout.NORTH);
上方
fileScrollPane=newJScrollPane(fileList,
JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
this.add(fileScrollPane,BorderLayout.CENTER);
中部
3.2.2功能实现函数
使用SUN公司提供的FTP客户端类库。
主要包括4个类:
.TelnetInputStream
.TelnetOutputStream
.ftp.FtpClient
.ftp.FtpLoginException
编写FtpBean类实现业务逻辑,包含一个FtpClient类的对象ftpClient。
包含的方法如下:
(1)建立连接
Stringconnect(Stringdir,String(username,passwd);
(2)获取文件名列表
List<
String>
getFileNameList()
使用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);
使用
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()<
sendFile.length())
ch=sendFile.read();
dos.write(ch);
获取文件输出流,读取数据并写入文件
(6)下载文件
booleandownloadFile(StringsrcFileName,StringtargetFileName)
使用TelnetInputStreamtis=null;
RandomAccessFilegetFile=null;
booleanresult=true;
Filefile=newFile(targetFileName);
getFile=newRandomAccessFile(file,"
rw"
getFile.seek(0);
tis=this.ftpClient.get(srcFileName);
DataInputStreamdis=newDataInputStream(tis);
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.1界面设计的实现
4.1.1连接服务器
单击连接若服务器名称、端口、用户名和密码对的前提下登录到指定的服务器上面,弹出“登录成功”对话框,并在下方状态栏中显示“登录成功
4.1.2获取文件列表
登录到服务器上面之后,获取在服务器用户的主文件及文件夹
并在下方状态栏显示
4.1.3断开服务器
当用户需要关闭连接时,单机“断开连接”就可断开与服务器的连接,在状态栏上显示“连接已断开”,此时并不退出客户端。
4.1.4上传文件
右击弹出快捷菜单单击上传显示上传对话框
选择需要上传的文件
单击打开即可上传,上传成功显示“上传成功”对户框,并在状态栏显示当前状态
4.1.5下载
单击下载
弹出下载主机路径,指定目录以及文件名称,单击打开
下载成功会弹出对话框“下载文件+源文件具体目录+成功”
4.1.6重命名
选中需要重命名的文件或者文件夹,右击弹出快捷菜单,单击重命名
在弹出的对话中输入新的名称,然后单击确定
弹出重命名成功的消息框
4.1.7删除
选中需要删除的文件,右击弹出快捷菜单,单击删除
弹出删除文件成功消息框
此时的文件夹已经把选中的从列表中移除
4.1.8刷新
当进行上传,重命名、删除或者服务器更新列表时,文件列表没有及时更新,可以点击刷新按钮进行显示
4.1.9返回上一目录
在文件夹子目录需要返回上一级目录时,单击“上级目录”即可以实现
4.1.10查看日志信息
日志信息是对用户操作的记录,如果需要查看,单击查看日志信息即可打开记录日志的文件
第五章总结
——董翠莲
在老师的指导下,经过我们小组成员的积极探讨和研究,我们终于完成了小组的课程设计——FTP客户端的设计与实现。
虽然我们在该系统功能上还有许多不足,但通过这一段时间的设计,从拟定方案,设计模块,解决开发过程中遇到的各种困难,最终实现了该文件传输系统的基本功能。
使我们对FTP客户端有了更深的了解。
FTP的目标是提高文件的共享性和可靠高效地传送数据,而FTP客户端的作用是使用户方便的连接和访问FTP客户端。
该设计实现了简单的FTP客户端,选择java类库使客户通过FTP客户端能简单地连接和访问,上传、下载、删除、刷新、返回上级目录等基本的操作功能。
我们选择Java来实现主要是它在程序上显得更加简捷灵活,并具有较好的可扩充性和移植性。
第六章参考文献
【1】谢希仁计算机网络(第五版)
【M】。
北京:
电子工业出版社,2006。
【2】赵生慧等编译Java面向对象程序设计(第二版)
中国水利水电出版社,2010。
【3】杨树林,胡洁萍Java语言最新实用案例教程【M】。
科学出版社,2006。
【4】叶俊明软件工程【M】。
清华大学出版社,2006:
第三章软件需求分析基础。
【5】W.RichardStevens.TCPTP详解卷1:
协议【M】。
机械工业出版社,2000。
评语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完美 升级 FTP 客户端 设计 实现 计算机网络 毕业论文 报告