ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:279.68KB ,
资源ID:1572255      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1572255.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

完美升级版FTP客户端的设计与实现计算机网络毕业论文报告Word下载.docx

1、明确设计目的,网上、图书馆搜查资料小组成员共同参与2界面设计,连接服务器,获取文件列表,断开连接3上传文件、下载文件由4删除、重命名文件及刷新列表5返回上级目录,查看日志信息6最后整合测试修改指导教师签字: 年 月 日教研室审核意见:教研室主任签字:第一章 序言 31.1课题来源 31.2开发工具 4第二章 系统需求分析 52.1功能需求 52.2 系统模型设计 52.3 系统工作流程设计 5第三章 系统设计 63.1实现功能 63.2函数说明 63.2.1界面设计代码 63.2.2功能实现函数 10第四章 系统实现 134.1界面设计的实现 134.1.1连接服务器 134.1.2获取文件列

2、表 144.1.3断开服务器 154.1.4上传文件 164.1.5下载 184.1.6重命名 194.1.7删除 214.1.8刷新 224.1.9返回上一目录 234.1.10查看日志信息 23第五章 总结 24第六章 参考文献 25第一章 序言 耿桂花1.1课题来源FTP(File Transfer Protocol, FTP)是TCPIP网络上两台计算机传送文件的协议,FTP是在TCPIP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。FTP是一个8位的客户端-服务器协议,能操作任何类

3、型的文件而不需要进一步处理,就像MIME或Unencode一样。但是,FTP有着极高的延时,这意味着,从开始请求到第一次接收需求数据之间的时间会非常长,并且不时的必需执行一些冗长的登陆进程。FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流,而端口21用于传输控制流,并且是命令通向ftp服务器的进口。当数据通过数据流传输时,控制流处于空闲状态。而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时,这样当大量数据通过防火墙时,会产生一些问题。此时,虽然文件可以成功的传输,但因为控制会话会被防火墙断开,传输会产生一些错误。FTP客户端主要目标是:促进文件的共享

4、(计算机程序或数据);鼓励间接或者隐式的使用远程计算机;向用户屏蔽不同主机中各种文件存储系统的细节;可靠和高效的传输数据。因此,开发FTP客户端成为一个很有必要的事情。1.2开发工具随着程序设计技术的改革和计算机环境的改变,Java语言也得到了迅速发展。一方面,C+等面向对象程序设计语言的发展为Java提供了基础。事实上,Java也大量继承了C以及C+的成果,并增加了体现程序设计发展状态的功能。另一方面,网络及Internet的发展对程序设计提出了新的要求,为Java的发展注入了强大的动力。正是Internet的快速发展和普及,改变了传统的计算模式,促进了Java的普及与流行。它最初被命名为O

5、ak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,以“Java”的名称正式发布。Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回

6、收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 1.4.2 发布后,Java 的执行速

7、度有了大幅提升。 与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。 Java 编程语言的主要特性是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。第二章 系统需求分析 方莹莹2.1功能需求1.实现一个图形用户界面的FTP客户端,保证文件的安全传输和存储。2.通过输入服务器地址、用户名和密码、可以

8、实现远程FTP主机的登录。3.提供本地文件的上传功能,可对FTP主机文件进行下载、上传、删除、重命名等文件操作。4.可以查看一系列的操作的日志信息。2.2 系统模型设计FTP的基本模型2.3 系统工作流程设计第三章 系统设计 高进3.1实现功能 用户登陆、用户退出、文件上传、文件下载、文件重命名文件删除、上翻文件目录、下翻文件目录界面实现部分:设计为一个用户界面,上面包括各种用户按钮、文本输入栏、状态栏等等。具体如下:服务器地址信息输入栏、端口信息输入栏、用户名、密码输入栏、用户登陆(连接)按钮、用户退出(断开连接)按钮、服务器文件显示列表框、下载文件按钮、上传文件按钮、重命名文件按钮、删除文

9、件按钮、上一级目录按钮,下一级目录按钮,状态栏。3.2函数说明3.2.1界面设计代码 每个按钮对象注册监听器对应相关的业务逻辑,调用FtpBean类中的对应方法。下面是页面部分实现的主要代码以及相关说明:package ftp;import java.awt.event.*;import java.awt.*;import java.util.*;import java.util.List;import java.util.StringTokenizer;import java.io.*;import javax.swing.*;import javax.swing.event.*;publi

10、c class FTP extends JFrame FtpBean ftp=new FtpBean(); FTP客户端对象 private FileWriter write ;private PrintWriter out;private Date time; private JTextField url = new JTextField(); FTP服务器地址 private JTextField port = new JTextField(); FTP服务器端口 private JTextField username = new JTextField(); 用户名 private JTe

11、xtField password = new JTextField(); 密码private JTextField status = new JTextField();当前状态private JButton connectButton=new JButton(连接);连接按钮private JButton closeButton=new JButton(断开连接断开连接按钮private JPopupMenu popup = new JPopupMenu();private JMenuItem refresh = new JMenuItem(刷新 右键弹出菜单private JMenuItem

12、 delete = new JMenuItem(删除 private JMenuItem download = new JMenuItem(下载private JMenuItem upload = new JMenuItem(上传private JMenuItem rename = new JMenuItem(重命名private JMenuItem upDir = new JMenuItem(上级目录private JMenuItem showLog = new JMenuItem(显示日志信息final DefaultListModel m=new DefaultListModel();

13、显示文件列表JList fileList = new JList(m);JScrollPane fileScrollPane;private Dimension faceSize = new Dimension(400, 600); 框架大小public FTP() init();createPopup(); 弹出菜单time = new Date();try write = new FileWriter(log.txt,true);out = new PrintWriter(write,true); catch(IOException ioe) ioe.printStackTrace();

14、status.setEditable(false); this.add(status,BorderLayout.SOUTH); 下方connectButton.addActionListener( new ActionListener() public void actionPerformed(ActionEvent e) connect(););closeButton.addActionListener(new ActionListener() close();out.println(time+ 离开服务器:+url.getText(); ); this.setDefaultCloseOpe

15、ration(JFrame.EXIT_ON_CLOSE); 添加框架的关闭事件处理 this.pack(); this.setSize(faceSize); 设置框架的大小Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();this.setLocation( (int) (screenSize.width - faceSize.getWidth() 2,(int) (screenSize.password.setText(gaojinJPanel no1 = new JPanel();no1.setLayout(

16、new BorderLayout();no1.add(new JLabel(服务器:),BorderLayout.WEST);no1.add(url,BorderLayout.CENTER);JPanel no2 = new JPanel();no2.setLayout(new BorderLayout();no2.add(new JLabel(端口号: no2.add(port,BorderLayout.CENTER);JPanel no3 = new JPanel();no3.setLayout(new BorderLayout();no3.add(new JLabel(用户名:no3.a

17、dd(username,BorderLayout.CENTER);JPanel no4 = new JPanel();no4.setLayout(new BorderLayout();no4.add(new JLabel(密码 :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.NO

18、RTH); 上方 fileScrollPane = new JScrollPane(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编写Ft

19、pBean类实现业务逻辑,包含一个FtpClient类的对象ftpClient。包含的方法如下:(1) 建立连接String connect(String dir, String (username, passwd);(2) 获取文件名列表List getFileNameList()使用 InputStreamReader isr = null; BufferedReader br = null;isr = new InputStreamReader(this.ftpClient.nameList(this.getDir();br = new BufferedReader(isr);获取输入流

20、来得到目录中的文件信息(3) 判断路径boolean isDir(String line)使用line.startsWith(d)来判断(4) 设置路径boolean setPath(String path) 使用ftpClient.cd(path);实现(5) 上传文件boolean uploadFile(String localFile, String targetFileName)使用 ftpClient.cd(path);使用 TelnetOutputStream tos = null; RandomAccessFile sendFile = null; DataOutputStrea

21、m dos = null; try File file = new File(localFile); sendFile = new RandomAccessFile(file, r sendFile.seek(0); tos = this.ftpClient.put(targetFileName); dos = new DataOutputStream(tos); int ch = 0; while (sendFile.getFilePointer() sendFile.length() ch = sendFile.read(); dos.write(ch);获取文件输出流,读取数据并写入文件

22、(6) 下载文件boolean downloadFile(String srcFileName, String targetFileName)使用TelnetInputStream tis = null; RandomAccessFile getFile = null; boolean result = true; File file = new File(targetFileName); getFile = new RandomAccessFile(file, rw getFile.seek(0); tis = this.ftpClient.get(srcFileName); DataInp

23、utStream dis = new DataInputStream(tis); while (true) ch = dis.read(); if (ch 0) break; getFile.write(ch) getFile.close(); 获取文件输入流,读取数据并写入文件(7) 进入上一级文件目录up()使用ftpClient.cdUp();(8) 进入下一级文件目录downDir()使用上面的方法来实现下一级文件目录的访问(9) 给文件重命名boolean renameFile(String oldName, String newName)使用ftpClient.rename(old

24、Name, newName);来实现(10) 删除文件deleteFile(String fileName)使用String cmd = DELE + fileName + rn ftpClient.sendServer(cmd);(11) 获取当前路径String getDir()使用return this.ftpClient.pwd();(12) 关闭连接String close()使用ftpClient.closeServer();第四章 系统实现 单连晖 陈智4.1界面设计的实现4.1.1连接服务器 单击连接若服务器名称、端口、用户名和密码对的前提下登录到指定的服务器上面,弹出“登录成

25、功”对话框,并在下方状态栏中显示“登录成功4.1.2获取文件列表 登录到服务器上面之后,获取在服务器用户的主文件及文件夹并在下方状态栏显示4.1.3断开服务器当用户需要关闭连接时,单机“断开连接”就可断开与服务器的连接,在状态栏上显示“连接已断开”,此时并不退出客户端。4.1.4上传文件 右击弹出快捷菜单单击上传显示上传对话框选择需要上传的文件单击打开即可上传,上传成功显示“上传成功”对户框,并在状态栏显示当前状态4.1.5下载 单击下载弹出下载主机路径,指定目录以及文件名称,单击打开 下载成功会弹出对话框“下载文件+源文件具体目录+成功”4.1.6重命名 选中需要重命名的文件或者文件夹,右击

26、弹出快捷菜单,单击重命名在弹出的对话中输入新的名称,然后单击确定弹出重命名成功的消息框 4.1.7删除 选中需要删除的文件,右击弹出快捷菜单,单击删除弹出删除文件成功消息框此时的文件夹已经把选中的从列表中移除4.1.8刷新 当进行上传,重命名、删除或者服务器更新列表时,文件列表没有及时更新,可以点击刷新按钮进行显示4.1.9返回上一目录 在文件夹子目录需要返回上一级目录时,单击“上级目录”即可以实现 4.1.10查看日志信息 日志信息是对用户操作的记录,如果需要查看,单击查看日志信息即可打开记录日志的文件第五章 总结 董翠莲在老师的指导下,经过我们小组成员的积极探讨和研究,我们终于完成了小组的

27、课程设计FTP客户端的设计与实现。虽然我们在该系统功能上还有许多不足,但通过这一段时间的设计,从拟定方案,设计模块,解决开发过程中遇到的各种困难,最终实现了该文件传输系统的基本功能。使我们对FTP客户端有了更深的了解。FTP的目标是提高文件的共享性和可靠高效地传送数据,而FTP客户端的作用是使用户方便的连接和访问FTP客户端。该设计实现了简单的FTP客户端,选择java类库使客户通过FTP客户端能简单地连接和访问,上传、下载、删除、刷新、返回上级目录等基本的操作功能。我们选择Java来实现主要是它在程序上显得更加简捷灵活,并具有较好的可扩充性和移植性。第六章 参考文献【1】 谢希仁 计算机网络(第五版)【M】。北京:电子工业出版社,2006。【2】 赵生慧等编译 Java面向对象程序设计(第二版)中国水利水电出版社,2010。【3】杨树林,胡洁萍Java语言最新实用案例教程【M】。科学出版社,2006。【4】叶俊明 软件工程【M】。清华大学出版社,2006:第三章 软件需求分析基础。【5】W.Richard Stevens.TCPTP详解卷1:协议【M】。机械工业出版社,2000。评语

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2