




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机网络课程设计实践报告题 目: 简单FTP模拟 姓 名: 朱晓琳 学 院: 信息科技学院 专 业: 计算机科学技术系 班 级: 计科72 学 号: 1927213 指导教师: 叶锡君 职称: 副教授 2010 年9月 10 日简单FTP模拟计算机科学与技术专业学生计科72班 朱晓琳1、 实验目的与要求(1)利用面向对象程序设计语言开发简单FTP软件。(2)理解掌握文件传输协议的具体内容。(3)要求可以传递简单文本文件。(4)设计美观易用的图形界面。2、 理论分析2.1 FTP的概念FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。2.2 FTP的工作原理当你启动FTP从远程计算机拷贝文件时实际上启动了两个程序:一个本地机上的FTP客户程序,它向FTP服务器提出拷贝文件的请求。另一个是启动在远程计算机的上的FTP服务器程序,它响应你的请求把你指定的文件传送到你的计算机中。FTP采用“客户机/服务器”方式。用户端在自己的本地计算机上安装FTP客户程序。FTP客户程序有字符界面和图形界面两种。字符界面的FTP的命令复杂、繁多。图形界面的FTP客户程序,操作上要简洁方便的多。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可下载或上传文件。也就是说,要想同哪一台计算机传送文件,就必须具有哪一台计算机的适当授权。换言之,除非有用户ID和口令,否则便无法传送文件。3、 系统简介本系统以FTP的工作原理和权限归属为基础,用java语言编写程序,使用MVC设计模式进行设计,用简单界面展示,用socket编程和二进制输入输出流来实现了FTP文件上传,下载,打印文件列表功能。本系统采用端口为4321和IP地址为连接。另外,考虑到FTP权限归属问题,设置了两个登录权限,anonymous用户和admin用户。anonymous用户只能打印文件列表和下载文件功能。而admin用户可以上传、下载和打印列表。4、 功能设计4.1 系统用例图4.2打印ftp文件列表4.2.1 打印算法描述如下:1、创建以ftp文件路径的文件,用一个数组存储文件列表2、用for循环打印所有文件4.2.2 打印算法代码如下:public void printAllFile(Socket s1) throws IOException / 打印ftp中的所有文件File localfile = new File(fileDir); File filelist = localfile.listFiles();dos = new DataOutputStream(s1.getOutputStream();/ 输出文件列表dos.writeUTF(filelist.length + );/ ftp中的文件总数dos.writeUTF(n);for (int i = 0; i filelist.length; i+) dos.writeUTF(文件名: + filelisti.getName() + 文件长度:+ filelisti.length() + 字节n);serverView.getTextArea().append(n);4.3 文件下载4.3.1 下载算法描述如下:1、创建二进制输入流用来接收socket收到的数据并封装2、在下载目录下创建该文件名的文件3、将文件封装到输出流进行输入4、客户端进行接收4.3.2 下载算法代码如下:(只给出了服务器端的代码)public void downloadFile(Socket s, String str) throws Exception / 下载文件dis = new DataInputStream(fileSocket.getInputStream();File f = new File(fileDir);/ 下载目录File file = new File(f, File.separator + str); fileSocket = new Socket(clientView.getIPField().getText(), 5432);/ 传输文件前重新构造SocketBufferedOutputStream buff = new BufferedOutputStream(new FileOutputStream(file); / 将文件封装到输出流中dis = new DataInputStream(fileSocket.getInputStream();/ 获取当前连接的输入流,并利用处理流进行封装。byte line = new byte102400;/ 每次发送的块大小while (temp = dis.read(line) != -1) buff.write(line, 0, temp);buff.flush();/ 刷新Thread.sleep(50);/ 设置一个等待时间,有利于接收文件buff.close();/ 关闭缓冲流fileSocket.close();/ 关闭socket4.4 文件上传4.4.1 上传算法描述如下:1、 创建二进制输入流用来接收socket收到的数据并封装2、 在ftp目录下创建该文件名的文件3、 将文件封装到输出流进行输入4、 服务器端进行接收4.4.2 上传算法代码如下:(只给出客户端)public void uploadFile(Socket s, String str) throws Exception / 上传文件File file = new File(str); / 创建该文件目录的文件,用来判断上传的文件是否存在fileSocket = new Socket(clientView.getIPField().getText(), 5432);BufferedInputStream buffIn = new BufferedInputStream(new FileInputStream(file); / 将文件封装到输出流中dos = new DataOutputStream(fileSocket.getOutputStream();/ 获取当前连接的输入流,并利用处理流进行封装。byte line = new byte102400;/ 每次发送的块大小while (temp = buffIn.read(line) != -1) dos.write(line, 0, temp);dos.flush();/ 刷新Thread.sleep(50);/ 设置一个等待时间,有利于接收文件dos.close();/ 关闭输入流buffIn.close();/ 关闭缓冲流fileSocket.close();/ 关闭socket5、 结构设计本系统主要是使用MVC设计模式开发的。分为业务逻辑层,控制层和显示层。业务逻辑层:主要处理事件监听,线程启动和关闭的操作;控制层:主要处理打印列表,下载和上传的功能操作;显示层:主要处理客户端和服务器端的界面显示。明确的分层有利于以后功能的扩展或者设计需求的变更,实现程序的松耦合。6、 运行环境和调试分析6.1 打印算法界面展示在“输入要发送的消息”文本框输入:print按回车,结果如下:6.2 下载算法界面展示在“输入要发送的消息”文本框输入:download ftp.doc按回车,结果如下:6.3 上传算法界面展示在“输入要发送的消息”文本框输入:upload f:HelloWorld.java按回车,结果如下:7、 小结本次课程设计,在选题上选择是自己比较熟悉的题目:FTP。对于FTP的概念、原理以及具体的相关内容都有了一定的理解,做的时候也比较方便。在设计整个系统时,采用面向对象的设计的思想,利用MVC设计模式设计各个层,尽量做到松耦合和代码的开闭原则。整个系统,在设计上花了比较多时间,但相信这也是值得的。因为通过这次设计,更加深了面向对象的思想,MVC的分层思想等重要设计思想,这将在以后的学习和工作中都有很大的帮助。另外,在代码编写部分,主要使用了自己不是很熟的socket编程,其中对线程的控制以及二进制流的控制,有了更深的理解和锻炼。对于界面部分,尽量考虑到简洁易操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程电气答辩题库及答案
- 农村供水设备采购与安装方案
- 老旧厂区改造建设工程项目环境影响报告书
- 玉米出口贸易代理服务合同范本
- 离婚协议中知识产权分割及补偿协议范本
- 道路危险货物运输合同签订安全评估与应急处理
- 水厂水质升级改造工程技术方案
- 离婚协议书起草及财产分割方案协商合同
- 离婚抚养权分配协议:男方获得孩子抚养权及监护权
- 夫妻协议离婚及出轨方赔偿金支付及财产分割协议
- 加快健康中国建设课件
- 2024年新疆鄯善县人民医院公开招聘护理工作人员试题带答案详解
- 买卖矿山居间合同协议
- 厌氧氨氧化工艺优化-洞察及研究
- 河北省单招7类数学试卷
- 下列不属于交通运输企业安全生产费用支出
- 患者安全管理培训课件
- 地质勘查成果管理办法
- (零诊)成都市2023级(2026届)高中毕业班摸底测试英语试卷(含答案)
- 消防作战指挥课件
- 医疗健康新媒体运营方案
评论
0/150
提交评论