FTP客户端的设计与实现
课程名称 计算机网络设计题目 FTP客户端的设计与实现系 别 计算机与信息工程学院专 业 计算机科学与技术
计算机科学与技术系二○一一年制
FTP客户端的设计与实现
课程设计任务书
FTP客户端的设计与实现
目 录
第一章序言··················································································································3
1.1课题来源······················································································································································3
1.2开发工具·····················································································································································3
第二章系统需求分析·······························································································5
2. 1功能需求·····················································································································································5
2.2系统模型设计··········································································································································5
2.3系统工作流程设计································································································································5
第三章系统设计·········································································································7
3. 1实现功能·····················································································································································7
3.2函数说明·····················································································································································7
3.2. 1界面设计代码· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·7
3.2.2功能实现函数· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·11
第四章系统实现········································································································13
4. 1界面设计的实现····································································································································13
4. 1. 1连接服务器· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·14
4. 1.2获取文件列表· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·14
4. 1.3断开服务器· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·15
4. 1.4上传文件· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·16
4. 1.5下载· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·17
4.1.6重命名· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·19
4.1.7删除· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·20
4.1.8刷新· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·22
4.1.9返回上一目录· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·22
4.1.10查看日志信息· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·23
第五章总结·················································································································24
第六章参考文献········································································································24
FTP客户端的设计与实现
第一章序言
——耿桂花
1. 1课题来源
FTP File Transfer Protocol, FTP是TCP/IP网络上两台计算机传送文件的协议 FTP是在TCP/IP网络和INTERNET上最早使用的协议之一它属于网络协议组的应用层。 FTP客户机可以给服务器发出命令来下载文件上载文件创建或改变服务器上的目录。 FTP是一个8位的客户端-服务器协议能操作任何类型的文件而不需要进一步处理就像MIME或Unencode一样。但是 FTP有着极高的延时这意味着从开始请求到第一次接收需求数据之间的时间会非常长并且不时的必需执行一些冗长的登陆进程。 FTP服务一般运行在20和21两个端口。端口20用于在客户端和服务器之间传输数据流而端口21用于传输控制流并且是命令通向ftp服务器的进口。当数据通过数据流传输时控制流处于空闲状态。而当控制流空闲很长时间后客户端的防火墙会将其会话置为超时这样当大量数据通过防火墙时会产生一些问题。此时虽然文件可以成功的传输但因为控制会话会被防火墙断开传输会产生一些错误。 FTP客户端主要目标是促进文件的共享计算机程序或数据 鼓励间接或者隐式的使用远程计算机向用户屏蔽不同主机中各种文件存储系统的细节可靠和高效的传输数据。
因此开发FTP客户端成为一个很有必要的事情。
1.2开发工具
随着程序设计技术的改革和计算机环境的改变J ava语言也得到了迅速发展。
一方面 C++等面向对象程序设计语言的发展为Java提供了基础。事实上 Java
也大量继承了C以及C++的成果并增加了体现程序设计发展状态的功能。另一
方面 网络及Inte rnet的发展对程序设计提出了新的要求 为Java的发展注入了
强大的动力。正是Inte r ne t的快速发展和普及改变了传统的计算模式促进了
J ava的普及与流行。
它最初被命名为O ak 目标设定在家用电器等小型系统的编程语言来解决
诸如电视机、 电话、 闹钟、烤面包机等家用电器的控制和通讯问题。 由于这些智
能化家电的市场需求没有预期的高 S un放弃了该项计划。就在O ak几近失败之
时随着互联网的发展 S un看到了O ak在计算机网络上的广阔应用前景于是
改造了O ak 以“Ja va”的名称正式发布。
Java编程语言的风格十分接近C、C++语言。 Java是一个纯的面向对象的程
序设计语言它继承了C++语言面向对象技术的核心 Java舍弃了C++语言中
容易引起错误的指针以引用取代、运算符重载ope rato r o verload ing、多重继
承以接口取代等特性增加了垃圾回收器功能用于回收不再被引用的对象所
FTP客户端的设计与实现
占据的内存空间使得程序员不用再为内存管理而担忧。在Java SE 1.5版本中Java又引入了泛型编程Generic Pro gramming、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode)然后依赖各种不同平台上的虚拟机来解释执行字节码从而实现了“一次编译、到处执行”的跨平台特性。不过每次的编译执行需要消耗一定的时间这同时也在一定程度上降低了 Java程序的运行效率。但在J2SE 1.4.2发布后Java的执行速度有了大幅提升。 与传统程序不同 S un公司在推出 Java之际就将其作为一种开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。 “Java语言靠群体的力量而非公司的力量”是S un公司的口号之一并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。
Java编程语言的主要特性是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
FTP客户端的设计与实现
第二章系统需求分析
——方莹莹
2. 1功能需求
1.实现一个图形用户界面的FTP客户端保证文件的安全传输和存储。
2.通过输入服务器地址、用户名和密码、可以实现远程FTP主机的登录。
3.提供本地文件的上传功能可对FTP主机文件进行下载、上传、删除、重
命名等文件操作。
4.可以查看一系列的操作的日志信息。
2.2系统模型设计
2.3系统工作流程设计
FTP客户端的设计与实现
FTP设计总流程图
FTP客户端的设计与实现
第三章系统设计
——高进
3.1实现功能
用户登陆、用户退出、文件上传、文件下载、文件重命名
文件删除、上翻文件目录、下翻文件目录
界面实现部分
设计为一个用户界面上面包括各种用户按钮、文本输入栏、状态栏等等。具体如下服务器地址信息输入栏、端口信息输入栏、用户名、密码输入栏、用户登陆连接按钮、用户退出断开连接按钮、服务器文件显示列表框、下载文件按钮、上传文件按钮、重命名文件按钮、删除文件按钮、上一级目录按钮下一级目录按钮状态栏。
3.2函数说明
3.2.1界面设计代码
每个按钮对象注册监听器对应相关的业务逻辑调用FtpBean类中的对应方法。下面是页面部分实现的主要代码以及相关说明package ftp;importjava.awt.event.*;import java.awt.*;import j ava.util.*;import java.util.List;import java.util.StringTokenizer;import java.io.*;import javax.swing.*;import javax.swing.event.*;public class FTP extends JFrame
{
FtpBean ftp=new FtpBean(); //FTP客户端对象pr ivate F ileW r iter wr ite;private P rintWriter o ut;private Date time;private JTextField url=new JTextField(); //FTP服务器地址private JTextF ield port=new JTextF ield(); //F TP服务器端口private JTextField username=new JTextField(); //用户名
FTP客户端的设计与实现
private JTextF ield password=new JTextF ield(); //密码private JTextF ie ld status=new JTextF ield();//当前状态private JButto n co nne ctButto n=new JButto n("连接");//连接按钮private JButton c loseButton=new JButto n("断开连接");//断开连接按钮private JPopupMenu popup=new JPopupMenu(); ;private JMenuItem re fresh=new JMenuItem("刷新"); //右键弹出菜单private JMenuItem de lete =new JMenuItem("删除");private JMenuIte m do wnload =new JMenuIte m("下载");private JMenuIte m up load =ne w JMe nuIte m("上传");private JMenuItem rename= new JMenuItem("重命名");private JMenuItem up Dir=new JMenuItem("上级目录");private JMe nuIte m s howLo g=ne w JMe nuIte m("显示日志信息");final DefaultListModel m=new DefaultListModel(); //显示文件列表JList fileList=new JList(m);
JScro llPane fileScro llPane;private D ime ns io n faceS ize=ne w D ime ns io n(400,600); //框架大小pub lic F TP()
{in it();createPop up(); //弹出菜单time=new Date();try
{write=ne w F ileWriter("lo g.txt",true);out=new PrintWriter(write,true);
}catch(IO Exception ioe)
{io e.printStackTrace();
}status.s etEd itab le(fa ls e);this.add(status,Borde rLayo ut.S OUTH); //下方connec tButto n.addAc tio nLis te ner(new Ac tio nListe ne r()
{public void actionPerformed(ActionEvent e)
{connec t();
CloudCone在月初发了个邮件,表示上新了一个系列VPS主机,采用SSD缓存磁盘,支持下单购买额外的CPU、内存和硬盘资源,最低年付17.99美元起。CloudCone成立于2017年,提供VPS和独立服务器租用,深耕洛杉矶MC机房,最初提供按小时计费随时退回,给自己弄回一大堆中国不能访问的IP,现在已经取消了随时删除了,不过他的VPS主机价格不贵,支持购买额外IP,还支持购买高防IP。下面列...
Justg是一家俄罗斯VPS云服务器提供商,主要提供南非地区的VPS服务器产品,CN2高质量线路网络,100Mbps带宽,自带一个IPv4和8个IPv6,线路质量还不错,主要是用户较少,带宽使用率不高,比较空闲,不拥挤,比较适合面向非洲、欧美的用户业务需求,也适合追求速度快又需要冷门的朋友。justg的俄罗斯VPS云服务器位于莫斯科机房,到美国和中国速度都非常不错,到欧洲的平均延迟时间为40毫秒,...
ucloud香港服务器优惠降价活动开始了!此前,ucloud官方全球云大促活动的香港云服务器一度上涨至2核4G配置752元/年,2031元/3年。让很多想购买ucloud香港云服务器的新用户望而却步!不过,目前,ucloud官方下调了香港服务器价格,此前2核4G香港云服务器752元/年,现在降至358元/年,968元/3年,价格降了快一半了!UCloud活动路子和阿里云、腾讯云不同,活动一步到位,...