计算机网络课设实验报告FTP_第1页
计算机网络课设实验报告FTP_第2页
计算机网络课设实验报告FTP_第3页
计算机网络课设实验报告FTP_第4页
已阅读5页,还剩67页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、下载可编辑简易的 FTP 软件.专业 .整理 .下载可编辑目录一、需求分析31.1 用户需求31.2 功能需求31.3 性能需求3二、概要设计32.1 主要模块功能描述32.2 整体结构模块图42.3 流程图5三、详细设计53.1 界面模块实现63.2 模块功能调用133.3 功能函数编写及实现效果14四、调试分析17五、测试结果18.专业 .整理 .下载可编辑六、课程设计总结23七、参考文献24八、附录25一、需求分析1.1 用户需求实现一个简易的FTP软件,要求实现 FTP常用的功能 ,包括列文件目录 ,下载文件 ,上传文件 ,用户登录 / 注销等 。1.2 功能需求该系统主要包括:1.可

2、视化的交互界面模块; 2.连接服务器用户登录模块;3.浏览服务器 / 本地目录和文件模块; 4.上传 /下载文件模块 ; 5.目录操作模块 。1.3 性能需求整个系统操作应当简便,界面友好 ,运行稳定 ,执行速度快 。 系统本身运行对计算机硬件平台和操作系统平台要求适中。二、概要设计2.1 主要模块功能描述本次课程设计的简易 FTP软件需要具备一些基本功能模块,如连接、上传、下载等,其中最主要的功能模块如下:1、下载功能模块 :连接用户指定的 FTP 服务器,获取服务器目录下的文.专业 .整理 .下载可编辑件列表,当用户选择项目为文件时,点击下载可以下载用户所需要的文件。选定文件后提示用户将文

3、件存储在何处,用户选择存储区后开始下载任务。依靠 FTP 协议的支持 ,用户下载的文件没有类型和大小限制,即用户可已选择任何自己想要下载的文件,通过 FTP 客户端进行下载 。2、上传功能模块 :用户可以自行选择本机上存储的文件,上传至 FTP 服务器。在用户选择存储在服务器的位置后,点击上传 ,选择所需要上传的文件,即可将文件上传至服务器。3、连接功能模块 :将用户本机与指定的IP 地址连接 ,验证用户命和密码,在 FTP 服务器上进行注册 。4、目录操作模块 :连接用户指定的FTP 服务器 ,可以创建或删除文件夹,也可以通过更改远程工作目录改变该用户的根目录。2.2 整体结构模块图.专业

4、.整理 .建除示传载文文目文文下载可编辑件件录件件夹夹客户在启动客户端程序后输入相应的登陆信息就能连接到服务器上,对服务器上的文件进行浏览 、新建、删除、重命名、上传、下载文件等操作 ,通过断开结束与服务器的连接 。2.3 流程图开始输入登录信息: 服务器地址、用户名、密码连接浏览文件新建文件删除文件更改目录显示目录上传下载断开结束三、详细设计本次课程设计的界面显示通过mainframe类实现 ,所有界面相关定义、布局等以.专业 .整理 .下载可编辑及各功能模块的调用都在mainframe类中编写 。各功能定义及实现则在ftpfunction类中编写 。3.1 界面模块实现由于各界面编写过程中

5、代码太多并且源代码已在结尾附上,在此以登陆界面为例,以下是对登录界面按钮、输入框等的布局 。登陆界面源代码:jLabel1.setText("jLabel1");jLabel2.setText(" 用户名 :");jLabel3.setText(" 密码: ");jButton1.setText(" 登陆 ");jButton1ActionPerformed(evt););.专业 .整理 .下载可编辑jButton2.setText(" 连接服务器 ");jButton2ActionPerfor

6、med(evt););jLabel6.setText(" 远处服务器地址:");jTextField5.setText("localhost");jTextField5ActionPerformed(evt););jLabel7.setText(" 端口号 :");jTextField6.setText("21");宋体 ", 1, 12);jLabel8.setText(" 注意:请先连接服务器再登陆");jButton6.setText(" 断开连接 ");.专

7、业 .整理 .下载可编辑jButton6ActionPerformed(evt););jPanel1Layout=newjPanel1.setLayout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(javax.swin.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createParall

8、elGroup(javax.s.addGroup(jPanel1Layout.createSequentialGroup().addGap(117, 117, 117).addGroup(jPanel1Layout.createParallelGro.addComponent(jLabel2).addComponent(jLabel3).专业 .整理 .下载可编辑.addGap(18, 18, 18).addGroup(jPanel1Layout.createParallelGro.addComponent(jTextField2,88,.addComponent(jTextField1,.a

9、ddGroup(jPanel1Layout.createSequentialGroup().addGap(123, 123, 123).addComponent(jLabel7).addGap(18, 18, 18).addComponent(jTextField6,58,.addGroup(jPanel1Layout.createSequentialGroup().addGap(55, 55, 55).addGroup(jPanel1Layout.createParallelGro.addComponent(jLabel8).专业 .整理 .下载可编辑.addGroup(jPanel1Lay

10、out.createSequentialGroup().addComponent(jLabel6).addGap(37, 37, 37).addComponent(jTextField5,112,.addGap(94, 94, 94).addGroup(jPanel1Layout.createSequentialGroup().addGap(193, 193, 193).addComponent(jButton1).addGroup(jPanel1Layout.createSequentialGroup().addGap(184, 184, 184).addComponent(jButton2

11、)ntPlacement.RELATED, 27, Short.MAX_VALUE).addComponent(jButton6).addGap(5, 5, 5).addGap(119, 119, 119);jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(javax.s.专业 .整理 .下载可编辑jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(jLabel8)ent.RELATED, 11, Short.MAX_VALUE)

12、.addComponent(jLabel6).addComponent(jTextField5,.addGap(28, 28, 28).addComponent(jLabel7).addComponent(jTextField6,.addGap(13, 13, 13).专业 .整理 .下载可编辑.addComponent(jButton2).addComponent(jButton6).addGap(18, 18, 18).addComponent(jLabel2).addComponent(jTextField1,.addGap(18, 18, 18).addComponent(jLabel

13、3).addComponent(jTextField2,.addGap(18, 18, 18).addComponent(jButton1).addGap(98, 98, 98);jTabbedPane1.addTab(" 登陆 ", jPanel1);.专业 .整理 .下载可编辑用户登录界面显示如下图:3.2 模块功能调用在 mainframe 类中定义的各按钮通过对 ftpfunction 类中的函数进行调用实现各自功能,以下是对各模块按钮在运行过程中调用函数的编写 。 由于按钮太多并且源代码已在结尾附上 ,在此以用户登录过程中的函数调用为例 :在用户登录界面中通过调用

14、 FtpFunction 类中的 setUser 、 setPW 、login 三个函数实现用户的登录 。String user = jTextField1.getText().toString();String pw = jTextField2.getText().toString();FtpFunction.setUser(user);FtpFunction.setPW(pw);FtpFunction.login();.专业 .整理 .下载可编辑3.3 功能函数编写及实现效果在 ftpfunction类中创建并定义了各个模块的功能函数,由于定义函数太多并且源代码已在结尾附上,在此以登陆时所

15、需用到的login 函数为例 ,以下为 login函数的源代码:public void login() try if (connectSocket = null) JOptionPane.showConfirmDialog(null," 服务器尚未连接 ,请先连接 ! "," 连接信息 ", JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);return;sendCommand("USER " + user);response = readLine();if (!r

16、esponse.startsWith("331") cleanup();JOptionPane.showConfirmDialog(null," 用户名或密码错误 ! "," 连接信息 ", JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);.专业 .整理 .下载可编辑用户名或密码错误! " + response);return;sendCommand("PASS " + passWord);response = readLine();

17、if (!response.startsWith("230") cleanup();JOptionPane.showConfirmDialog(null," 用户名或密码错误 ! "," 连接信息 ", JOptionPane.CLOSED_OPTION,JOptionPane.INFORMATION_MESSAGE);用户名或密码错误! " + response);return;logined = true;JOptionPane.showConfirmDialog(null," 登陆成功 ! ",&q

18、uot; 连接信息 ", JOptionPane.CLOSED_OPTION, JOptionPane.INFORMATION_MESSAGE);cwd(remotePath);.专业 .整理 .下载可编辑 catch (Exception e) JOptionPane.showConfirmDialog(null," 登陆失败 ! "," 登陆信息 ", JOptionPane.CLOSED_OPTION,JOptionPane.INFORMATION_MESSAGE);如果在服务器尚未连接的情况下登陆,则会显示如下界面:如果用户名或密码输入

19、错误,则会显示如下界面:.专业 .整理 .下载可编辑在连接服务器后 ,且用户名和密码都输入成功的情况下,会显示如下界面:四、调试分析此建议 FTP 软件在 U-FTPsrv 运行情况下作出测试,结果基本能够达到预期功能,满足用户的基本的登录服务器,上传下载数据的需求,并且在 Windows平台上经测试能够稳定的运行。不足之处在于上传下载过程中无法得知过程进度、剩余时间等信息,对用户上传较大文件时会造成一定的不方便,能加入断点传输的话会更好。总的来说 ,.专业 .整理 .下载可编辑测试内容较少 ,可能会存在一些BUG,与现实生活中大家使用的那些FTP 下载软件有相当的距离 。 对此,还更应该的深

20、入的学习Java 语言中的那多重要的类库,更全面的了解他们的功能 ,争取完善其功能 。五、测试结果输入服务器的IP 地址,默认端口号为21 ,连接服务器 :服务器连接成功后,输入用户名和登录密码:所登陆用户的详细信息:.专业 .整理 .下载可编辑输入要上传的文件路径,点击上传进行上传:上传前该用户的文件夹:上传成功后该用户的文件夹:.专业 .整理 .下载可编辑浏览服务器地址中该用户的工作目录:显示当前目录 ,显示在了框中 ,如下图 :在当前目录中创建文件夹123 ,该用户工作目录的文件夹中出现名为123 的文件夹 ,.专业 .整理 .下载可编辑可见于下面截图的左下角:删除名为123的文件夹 ,

21、该文件夹在用户的工作目录的文件夹中删除,同样可见于下面截图的左下角:改变该用户的工作目录,截图中为改为A 为当前用户的工作目录,通过显示当前工作目录可以知道更改工作目录成功,也可以通过显示远程文件列表验证是否成功:.专业 .整理 .下载可编辑输入所需下载的文件路径和下载后存放的路径进行下载:下图可见 2.doc 下载成功 :.专业 .整理 .下载可编辑通过断开连接可同时进行断开服务器连接和用户注销:六、课程设计总结通过翻阅书籍 ,在网上查阅资料 ,实践编程等一系列进程,一个简易的 FTP 客户端软件的设计与开发终于完成了,虽然功能上还有许多不足,但通过这些时间的钻研,从拟定方案 ,设计模块 ,

22、解决开发过程中遇到的各种困难,最终实现了该文件传输系统的基本功能 。 实现了远程登录服务器、浏览本地与服务器目录文件和数据上传下载等功能需求 ,从而实现了一个简易的FTP 客户端软件 。通过自己实际设计并开发一个FTP客户端软件 ,使我了解了 C/S 开发模式和 FTP 的发展历史及工作原理,对 FTP协议在网络中的结构和本身协议在传输的作用有了更深的认识。通过系统测试 ,我又了解了软件测试的理论知识 ,理解了测试的概念 ,了解了测试方法以及过程,虽然只是很有限的尝试和使用 ,但我尽量通过所学的知识从中寻找错误和不足,也对我今后做类似项目起到了积极的指导作用,总的说来此次课题我受益颇丰。遇到的

23、问题是刚开始输入文件进行上传下载的格式总是不正确,导致一段时间的焦虑和止步不前 ,但通过查阅资料 ,对输入的格式有了更加清晰的认知,终于解决了这个问题 。 我们在遇到问题时,要积极查阅资料或者和老师同学进行探讨,对基础知.专业 .整理 .下载可编辑识一定要掌握的非常牢靠 ,才能不出现一些小问题 。随着计算机网络的迅猛发展,计算机网络的应用日益广泛,并且已经渗透到生活的方方面面 ,对人们的生活起着不可忽视的作用。在这个信息化的社会中,了解网络是当代大学生必不可少的一门课程。尤其是对我们信息专业的学生,认识计算机网络的基本理论 ,以及其在生活中发挥的重大作用,为今后我们进一步深入学习专业课程,奠定

24、了良好的基础 。 科学技术日新月异蓬勃发展,从世纪年代初迅速发展起来的 internet ,已经飞速改变了人们的生活和工作。人们被其丰富无穷的信息资源、方便快捷的交流方式深深吸引。如今计算机网络的教育更是早已深入大学校园,尤其是对于我们信息管理与信息系统这个专业,网络是信息传播 、资源共享的重要媒介,这门课程也是我们必不可少的一课。 随着计算机技术的迅猛发展,计算机的应用逐渐渗透到各个技术领域和整个社会的各个方面。社会的信息化 、数据的分布处理 、各种计算机资源的共享等各种应用要求都推动计算机技术朝着群体化方向发展,促使计算机技术与通信技术紧密结合。网络是计算机的一个群体 ,是由多台计算机组成

25、的,这些计算机是通过一定的通信介质互连在一起的,计算机之间的互连是指它们彼此之间能够交换信息 。 计算机网络属于多机系统的范畴,是计算机和通信这两大现代技术相结合的产物 ,它代表着当前计算机体系结构发展的一个重要方向。 计算机网络技术的发展和普及日益改变着我们的学习和生活,各种各样的网络应用让我们眼花缭乱,因特网让我们真正体会到信息爆炸的威力。七、参考文献1 Herbert Schildt.Java 实用教程 M. 北京:清华大学出版社 , 2005 。2 胡月 ,叶曙光 ,徐饪 .Jbuilder9 入门与提高 M. 北京:科学出版社 , 2004 。.专业 .整理 .下载可编辑3 耿祥义

26、,张跃平 .JAVA2 实用教程 (第二版 )M. 北京 :清华大学出版社 ,2004 。4杨树林 ,胡洁萍 .JAVA语言最新实用案例教程M. 北京:科学出版社 , 2006 。5 W.Richard Stevens.TCP/IP详解卷 1:协议 M. 北京:机械工业出版社 ,2000 。6 张晓明 .计算机网络编程技术 M. 北京:中国铁道出版社 , 2009 。八、附录Mainframe类:ftpFunction FtpFunction = new ftpFunction();/* Creates new form mainFrame */public mainFrame() setTi

27、tle("ftp客户端 ");setLocation(250, 150);initComponents();private void initComponents() .专业 .整理 .下载可编辑abbedPane();.专业 .整理 .下载可编辑jLabel1.setText("jLabel1");setDefaultCloseOperation(.专业 .整理 .下载可编辑jLabel2.setText(" 用户名 : ");jLabel3.setText(" 密码 : ");jButton1.setText(

28、"登陆 ");public void actionPerformed(jButton1ActionPerformed(evt););jButton2.setText("连接服务器");public void actionPerformed(jButton2ActionPerformed(evt););jLabel6.setText(" 远处服务器地址: ");jTextField5.setText("localhost");public void actionPerformed(jTextField5ActionP

29、erformed(evt);.专业 .整理 .下载可编辑);jLabel7.setText(" 端口号 : ");jTextField6.setText("21");宋体 ", 1, 12);jLabel8.setText(" 注意 :请先连接服务器再登陆");jButton6.setText("断开连接 ");public void actionPerformed(jButton6ActionPerformed(evt););jPanel1Layout=newjPanel1);jPanel1.setLa

30、yout(jPanel1Layout);jPanel1Layout.setHorizontalGroup(jPanel1Layout.createParallelGroup(.addGroup(jPanel1Layout.createSequentialGroup().专业 .整理 .下载可编辑.addGroup(jPanel1Layout.createSequentialGroup().addGroup(jPanel1Layout.createParallelGroup(.addGroup(jPanel1Layout.createSequentialGroup().addGap(117, 1

31、17, 117).addGroup(jPanel1Layout.createParallelGroup(javax.addComponent(jLabel2).addComponent(jLabel3).addGap(18, 18, 18).addGroup(jPanel1Layout.createParallelGroup(javax.addComponent(jTextField2,.addComponent(jTextField1,.addGroup(jPanel1Layout.createSequentialGroup().addGap(123, 123, 123).addCompon

32、ent(jLabel7).addGap(18, 18, 18).专业 .整理 .下载可编辑.addComponent(jTextField6,.addGroup(jPanel1Layout.createSequentialGroup().addGap(55, 55, 55).addGroup(jPanel1Layout.createParallelGroup(javax.addComponent(jLabel8).addGroup(jPanel1Layout.createSequentialGroup().addComponent(jLabel6).addGap(37, 37, 37).add

33、Component(jTextField5,112,.addGap(94, 94, 94).addGroup(jPanel1Layout.createSequentialGroup().addGap(193, 193, 193).addComponent(jButton1).addGroup(jPanel1Layout.createSequentialGroup().addGap(184, 184, 184).addComponent(jButton2).专业 .整理 .下载可编辑ent.RELATED, 27, Short.MAX_VALUE).addComponent(jButton6).

34、addGap(5, 5, 5).addGap(119, 119, 119);jPanel1Layout.setVerticalGroup(jPanel1Layout.createParallelGroup(jPanel1Layout.createSequentialGroup().addContainerGap().addComponent(jLabel8)TED, 11, Short.MAX_VALUE).addComponent(jLabel6).addComponent(jTextField5,.addGap(28, 28, 28).专业 .整理 .下载可编辑.addComponent(

35、jLabel7).addComponent(jTextField6,.addGap(13, 13, 13).addComponent(jButton2).addComponent(jButton6).addGap(18, 18, 18).addComponent(jLabel2).addComponent(jTextField1,.addGap(18, 18, 18).addComponent(jLabel3).addComponent(jTextField2,.专业 .整理 .下载可编辑.addGap(18, 18, 18).addComponent(jButton1).addGap(98,

36、 98, 98);jTabbedPane1.addTab(" 登陆 ", jPanel1);jLabel4.setText(" 文件路径 : ");jButton3.setText("上传 ");public void actionPerformed(jButton3ActionPerformed(evt););jPanel2Layout=newjPanel2);jPanel2.setLayout(jPanel2Layout);jPanel2Layout.setHorizontalGroup(jPanel2Layout.createP

37、arallelGroup(.addGroup(jPanel2Layout.createSequentialGroup().专业 .整理 .下载可编辑.addGap(48, 48, 48).addComponent(jLabel4).addGap(42, 42, 42).addComponent(jTextField3,.addGap(36, 36, 36).addComponent(jButton3).addContainerGap(82, Short.MAX_VALUE);jPanel2Layout.setVerticalGroup(jPanel2Layout.createParallelGroup(.addGroup(jPanel2Layout.createSequentialGroup().addGap(37, 37, 37).addComponent(jLabel4).addComponent(jTextField3,.addComponent(j

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论