远程文件传输.doc_第1页
远程文件传输.doc_第2页
远程文件传输.doc_第3页
远程文件传输.doc_第4页
远程文件传输.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

仰恩大学计算机与信息学院 课题设计报告面向对象程序设计实践教程课题设计报告课题名称: 远程文件传输程序设计专业: 信息管理与信息系统班级: 04级信管2班 姓名: 陈裕锋 学号: 0402286 指导老师: 郑燕娥 日期: 2007-11-1 仰恩大学计算机系- 11 -一、 课程序设计目的(1)掌握基于TCP的网络程序设计;(2)掌握基于UDP的网络程序设计;(3)编写远程文件传输程序,实现在二台远程主机之间传输任意文件。二、 开发环境(1)系统环境:Windows XP(2)编程环境:JDK1.6,JCreator Pro V3.50.013 汉化版实现过程(1) Java网络编程基础知识介绍网络编程就是指直接或间接地通过网络协议与其他计算机进行通讯。网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。 目前较为流行的网络编程模型是客户机/服务器(C/S)结构。即通信双方一方作为服务器等待客户提出请求并予以响应。客户则在需要服务时向服务器提出申请。服务器一般作为守护进程始终运行,监听网络端口,一旦有客户请求,就会启动一个服务进程来响应该客户,同时自己继续监听服务端口,使后来的客户也能及时得到服务。一般的TCP/IP网络数据通信主要可分2种,TCP和UDP两个协议TCP: 即传输控制协议,是一种面向连接的传输层协议。通过使用序列号和确认信息,TCP协议能够向发送方提供到达接收方的数据包的传送信息。当传送过程中出现数据包丢失情况时,TCP协议可以重新发送丢失的数据包直到数据成功到达接收方或者出现网络超时。TCP协议还可以识别重复信息,丢弃不需要的多余信息,使网络环境得到优化。如果发送方传送数据的速度大大快于接收方接收数据的速度,TCP协议可以采用数据流控制机制减慢数据的传送速度,协调发送和接收方的数据响应。TCP协议能够把数据传送信息传递给所支持的更高层次的协议或应用使用。 一般套接字(TCP)提供一个可靠的传输模型作为两个网络端点的字节流, 可以把套接字比喻为打电话,一方呼叫,另一方负责监听,一旦建立了套接字连接,双方就可以进行通信,提供无差错、发送先后顺序一致的、包长度不限和非重复的网络信包传输、适用于一次要传输交换大量报文的情况,信道上传递的包不需要源地址和目的地址. java提供了ServerSocket和socket类。在server端,建立一个serverSocket,并指定端口,并侦听连接.服务器端代码ServerSocketsc=newServerSocket(1234);Socketsocket1=sc.accept();DataInputStreams_in=newDataInputStream(socket1.getInputStream();客户端代码Socketsocket2=newSocket(localhost,1234);UDP: 是一种无连接的协议,每个数据报都是一个独立的信息,没有保持的连接和数据流,数据报是一个网络上发送的独立信息,它的到达时间,以及内容不能得到保证,但UDP提供高效率服务,适用于依次传输交换少量报文的情形 (如数据库查询),每个数据包要包含目的地址和端口号.数据报传输有大小限制,每个传输的数据包必须限定在64KB之内。UDP通信比作邮递信件,我们不能确定所发的信件就一定能够到达目的地,也不能确定到达的顺序是发出时的顺序,可能因为某种原因导致后发出的先到达,另外,也不能确定对方收到信就一定会回信。服务器端代码:DatagramSocketserver=newDatagramSocket(1234);DatagramPacketin_packet=newDatagramPacket(in_buf,2000);server.recieve(in_packet);客户端代码:DatagramSocketclient=newDatagramSocket(1235);DatagramPacketout_packet=newDatagramPacket(out_buf,100,127.00.1,1234);client.send(out_packet);(2)远程文件传输概要设计 总体流程图:客户端服务器端开始开始选择要发送文件不断监听接口发送文件名接收文件名判断是否接收发送文件是判断是否发送完毕开始接收是判断是否接收完毕完毕退出是是否否说明:当客户端要发送文件给服务器端时,先把文件名发送给服务器端,服务器端判断是否要接收,如果要接受文件则则返回同意接收,客户端开始发送文件,服务器端开始接收文件,接着客户端判断是否发送完成,服务器端判断是否接收完成。最后客户端完成发送,服务器端完成接收。客户端流程图:开始选择要发送的文件发送文件名判断是否接受开始发送是判断是否发送完成完成退出是否否说明:作为客户端(发送方),首先向服务器端发送要发送的文件名,接收方判断是否接收文件,如果服务器端同意接收,客户端则发送文件,否则就取消发送退出程序。服务器端流程图:开始监听端口,等待连接接收文件名是否接收选择保存路径是开始接收是否接收完成完成退出是否否说明:作为服务器端,首先不断的监听来至客户端的端口,当客户端发送文件名到服务器,端,服务器端判断是否要接收文件,如果要接收,则选择文件保存的位置,客户端就开始发送数据,最后判断是否发送完成,直到接收完成。(3)远程文件传输详细设计 客户端程序详细设计:类名:Send (主函数类)类功能:客户端发送文件。方法1:send() 功能:主函数类,布局主窗口。方法2:SendFile() 功能:线程类,启动线程发送文件。类名:Socket 类功能:用于客户端套接字方法1:Socket(int prot) 功能:服务器使用该方法监听指定的端口 参数:prot 表示随意制定的(一般使用1024以上的端口)的端口方法2:Socket(host_IP,prot) 功能: 制定端口类名:SendFile类功能:线程类,负责处理发送文件。方法1:run(); 功能:把文件名发送到服务器端,并且判断服务器端是否接收,如果接受就发送,完成后关闭流。方法2:getName(); 功能:返回由此抽象路径名表示的文件或目录的名称。方法3:readBoolean(); 功能:读取一个布尔值,为真返回true ,为假返回false。方法4:flush() 功能:通过将所有已缓冲输出写入基础流来刷新此流。方法5:append(String str) 功能:向文本区追加文本内容。方法6:showOpenDialo (Component parent) 功能:弹出一个 Open File 文件选择器对话框。方法7:Accept() 功能:用于产生“阻塞”,直至接收到来之客户的一个连接,并且返回客户端的Socket对象实例。方法8:GetOutputStream() 功能:连接的另一端将得到输入,同时返回一个OutputStream对象实例。服务器端详细设计:类名:Receive(主函数类)类功能:服务器端接收文件。方法1:Receive() 功能:主函数类,布局主窗口。方法2:FileReceive () 功能:线程类,启动线程接收文件。类名:ServerSocket类功能:用于客户端套接字方法1:ServerSocket(int prot) 功能:创建绑定到特定端口的服务器套接字。 方法2:ServerSocket(int port, int backlog) 功能:利用指定的 backlog 创建服务器套接字并将其绑定到指定的本地端口号。 方法3:Accept() 功能:用于产生“阻塞”,直至接收到来之客户的一个连接,并且返回客户端的Socket对象实例。类名:FileReceive类功能:线程类,负责处理接收文件。方法1:GetInputStream() 功能:获得网络连接输入,同时返回一个IuputStream对象实例。方法2:run(); 功能:确认是否接收,若接收客户端发送文件,服务器端开始接收文件,直到接收完成,提示接收完毕。(4)界面介绍 客户端界面(发送端): 说明:当按下发送按钮弹出文件选择器,选中想要发送的文件发送,文本区显示要发送的文件名,当接收端开始接收,发送端显示“开始发送”,接收端接受完成,发送端显示“发送完成”并且显示文件存储的位置。 服务器端界面(接收端): 说明:当客户端发送文件过来,服务器端显示“开始接受文件”以及文件名,当按下按钮“另存为”选择路径存储文件后,客户端开始发送文件,服务器端显示“开始接受”,当服务器端接收完毕后显示“接受完成”以及文件的存放位置。取消界面: 说明:当客户端想要取消发送时,按下“取消”按钮,程序退出,并且显示“用户取消发送”。 当服务器端想要取消接收时,按下“取消” 按钮,程序退出,并且显示“用户取消接收”。三、 课题总结(1)主要问题1、如何使界面布置的更加合理。2、在创建输入输出流的时候如何控制。3、在接收文件的时候如何建立机制确定和取消。4、如何控制和开放端口号以便将数据输入输出。(2)收

温馨提示

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

评论

0/150

提交评论