通信软件实验报告基于udp文件传输程序设计与实现.docxVIP

通信软件实验报告基于udp文件传输程序设计与实现.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于UDP的文件传输程序设计与实现(服务端) 程序设计思路 UDP(User Datagram Protocol,用户数据报协议)简介 UDP为无连接的通信协议,其主要目的在于处理传输少量的数据。与TCP不同的是,UDP在传输数据之前不需要建立通信链接。仅须设置计算机间的IP及使用相同的端口,即可互相传输信息,因此UDP只提供单向的数据传输,如图1.1所示: 单向无连接传输模式接收发送主机主机 单向无连接传输模式 接收 发送 主机 主机 图1.1 UDP通信协议 由于UDP不须先建立连接,这样节省了TCP建立连接所需的时间,因此适合于在主机间做单向的数据传输。但UDP不提供数据错误的侦测以及数据重送等功能,因此并不确保数据能完整发送。 java实现UDP程序思路 UDP程序使用数据报的形式出现,需要使用以下两个类。 数据报的内容:DatagramPacket。 发送和接收数据报:DatagramSocket。 在开发TCP程序的时候,是先有服务端,之后再进行客户端的开发。而UDP要运行的时候,则应该先运行客户端,之后再运行服务端。 在运行UDP程序的时候先运行客户端,阻塞等待服务端发过来的信息,服务端开启后,向目标端发送信息之后便关闭了服务端,并不阻塞等待客户端的响应。 二、实现关键技术点 1.服务端界面布局 服务端界面使用的是边框布局管理器,边框布局管理器是每个JFrame的内容窗格的默认布局管理器。流布局管理器完全控制每个组件的放置位置,边框布局管理器则不然,它允许为每个组件选择一个放置位置。可以选择把组件放在内容窗格的中部、北部、南部、东部或者西部。一般来讲是先放置边缘组件,剩余的可用空间由中间组件占据。当容器缩放时,边缘组件的尺寸不会改变,而中部组件的大小会发生变化。在添加组件时可以指定BorderLayout类中的CENTER、NORTH、SOUTH、EAST和WEST常量。图2.1给出了服务器的界面布局: 图2.1 UDP文件传输系统界面布局 文件选择器 Swing中提供了JFileChooser类,它可以显示一个文件对话框,其外观与本地应用程序中使用的文件的对话框基本一样。JFileChooser是一个模式对话框。接收文件的按钮被自动地标签为Open或者Save。图2.2为文件选择器运行在UDP程序上的截图。 图2.2 文件选择对话框 发送类Sender的设计 发送文件时首先要知道目标主机的名称,所以Sender类应该包含目标主机属性,来实现目标主机的动态设定。还必须包含目标主机的端口。在方法上需要一个判断文件是否传输的函数,如果传输成功,则必须向系统返回值,以告知系统返回成功。以下为Sender类的设计。 publicclass UDPSend { private DatagramSocket socket; private DatagramPacket pack; private String host;//目标主机 privateintport;//目标主机的端口 public UDPSend(DatagramSocket socket,String host,intport) { this.socket = socket; this.host = host; this.port = port; } publicboolean sendFile(Path path) throws IOException { booleanflag = false; byte[] bytes = Files.readAllBytes(path); String content = new String(bytes); pack = new DatagramPacket(content.getBytes(),content.length(),InetAddress.getByName(host),port); socket.send(pack); flag = true; returnflag; } 客户端的简单设计 对UDP程序是否传输成功文件需要设计一个简单的客户端来接收服务端的文件信息。这个客户端不包含对接收信息的处理,显示的结果仅仅是传输文件里面的内容信息,并没有形成新的文件。 三、运行结果截图 1.先运行客户端程序 2.运行服务端程序 3.填入发送所需要的信息并选择文件传送。 4.发送结果。 5.接收结果 小组成员分工 分工一: 负责界面设计。 分工二: 负责服务端和测试客户端的程序设计。 设计难点及解决问题的收获 设计难点: 1.在设计程序界

文档评论(0)

peili2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档