- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java网络程序设计 第4章 数据报套接字 本章概述 数据报套接字(datagram socket),又称自寻址套接字。自寻址使用UDP发送寻址信息(从客户程序到服务程序或从服务程序到客户程序),不同的是可以通过自寻址套接字发送多IP信息包,自寻址信息包含在自寻址包中 Datagram(数据报)是一种尽力而为(best-effort)的传送数据的方式 它只是把数据的目的地记录在数据包(DatagramPacket)中,然后就直接放在网络上,系统不保证数据是否能安全送到,或者什么时候可以送到,也就是说它并不保证传送质量 本章概述 数据报套接字基于的是UDP协议,与TCP保证信息到达信息目的地的方式不同,UDP提供了另外一种方法,如果自寻址信息包没有到达目的地,UDP也不会请求发送者重新发送自寻址包 自寻址套接字工作包括下面三个类: DatagramPacket 描绘了自寻址包的地址信息 DatagramSocket表示客户程序和服务器程序自 寻址套接字 MulticastSocket描绘进行多点传送的自寻址套接字 这三个类均位于java.net包内 4.1 数据报套接字 数据报(Datagram)是网络层数据单元在介质上传输信息的一种逻辑分组格式,它是一种在网络中传播的、独立的、自身包含地址信息的消息,它能否到达目的地、到达的时间、到达时内容是否会变化不能准确地知道 DatagramSocket本身只是码头,不维护状态,不能产生I/O流,它的唯一作用就是接收和发送数据报,Java使用DatagramPacket 来代表数据报,DatagramSocket接收和发送的数据都是通过DatagramPacket对象完成的。 4.1 数据报套接字 它的通信双方是不需要建立连接的,对于一些不需要很高质量的应用程序来说,数据报通信是一个非常好的选择。 在Java的java.net包中有两个类DatagramSocket和DatagramPacket,为应用程序中采用数据报通信方式进行网络通信。 4.1.1 创建DatagramPacket对象 使用数据包方式发送信息,首先将数据打包,java.net包中的DategramPacket类用来创建数据包。 数据包有两种:一种是用来被发送的数据包,该数据包有要传递到的目的地址;另一种数据包用来接收传递过来的数据包中的数据。 1. 创建的DatagramPacket对象用于接收数据 1)public DatagramPacket(byte ibuf[],int ilength) 以一个空数组来创建DatagramPacket对象,该对象的作用是接收DatagramSocket中的数据。 2)public DatagramPacket( byte ibuf[],int offset ,int ilength) : 以一个空数组来创建DatagramPacket对象,并指定接收到的数据放入ibuf数组中时从offset开始,最多放ilength个字节。 1. 创建的DatagramPacket对象用于接收数据 如: byte[ ] buffer = new byte[8912]; DatagramPacket datap = new DatagramPacket(buffer, buffer.length()); 2. 创建的DatagramPacket对象用于发送数据 1)public DatagramPacket(byt ibuf[], int ilength, InetAddrss iaddr, int port) 以一个包含数据的数组来创建DatagramPacket对象,创建该DatagramPacket时还指定了IP地址和端口号——这就决定了该数据报的目的地址。 2)public DatagramPacket(byt ibuf[], int offset , int ilength, InetAddrss iaddr, int port) 创建一个用于发送的DatagramPacket对象,也多指定了一个offset参数。 2. 创建的DatagramPacket对象用于发送数据 如: String s = new String(“java networking”); byte[ ] data = s.getbytes( ); int port = 1024; try{ InetAddress ineta = InetAddress.getByName(“169.254.0.14”); DatagramPacket datap = new DatagramPacket(data, data.
您可能关注的文档
最近下载
- 资料员工作内容.docx VIP
- P气瓶充装证考试题库及答案.doc VIP
- 上海市杨浦区2023-2024学年七年级下学期期中英语试卷 .docx VIP
- 2025年高考真题解析课件:2025年全国新高考二卷英语读后续写(课件).pptx VIP
- 贵阳市中心城区控制性详细规划(总则)——乌当组团.pdf VIP
- 图书出版合同(合同范本)7篇.docx VIP
- (正式版)D-L∕T 1770-2017 抽水蓄能电站输水系统充排水技术规程.docx VIP
- 《结构全寿命维护》课程教学大纲(本科).docx VIP
- SI、PI协同的EMI分析—打印版.pdf
- Unit2 Travelling Around Discovering Useful Structures 课件-2024-2025学年高中英语人教版(2019)必修第一册.pptx VIP
原创力文档


文档评论(0)