第八章 数据报套接字.pptVIP

  1. 1、本文档共67页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
An Introduction to Database System 第5章 数据报套接字 5.1 数据报套接字概述 5.2 Datagram Socket编程示例 5.3 组播套接字 5.4 组播套接字编程示例 第5章 数据报套接字 数据报套接字又称自寻址套接字,数据报套接字使用前不需进行连接,数据报套接字编程中每条数据报文负载了自己的地址信息,并与其它信息相互独立。在接收信息时,数据报套接字扮演的角色就是一个信箱,从不同的地址发来的信件都可以放在这里,数据报套接字一旦被创建,可以向不同的地址发信息。 数据报套接字是基于UDP协议的。 数据报套接字编程中主要使用三个类: DatagramPacket、 DatagramSocket、 MulticastSocket类 第5章 数据报套接字 基于UDP的数据报和套接字 UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP协议的全称是用户数据报,在网络中它与TCP协议一样用于处理数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 5.1 数据报套接字概述 数据报套接字是基于UDP协议的。它比TCP具有更快的传输速度,但是不可靠。 当网络传输UDP数据报时,无法保证数据报一定到达目的地,也无法保证各个数据报按发送的顺序到达目的地。当发送方先发送包含字符串“hello”的数据报,再发送包含字符串“everyone”的数据报,接收方有可能先接收到字符串 “everyone”,再接收到字符串“hello”;也有可能什么数据也没有接收到,因为发送方发送的数据有可能在传输途中都丢失了。 在Java中,java.util.DatagramSocket负责接收和发送UDP数据报,java.util.DatagramPacket表示UDP数据报。 5.1 数据报套接字概述 UDP协议是无连接的协议,客户端的DatagramSocket与服务器端的DatagramSocket不存在一一对应关系,两者无需建立连接,就能交换数据报。 每个DatagramSocket与一个本地地址(包括本地主机的IP地址和本地UDP端口)绑定,每个DatagramSocket可以把UDP数据报发送给任意一个远程DatagramSocket,也可以接收来自任意一个远程DatagramSocket的UDP数据报。在UDP数据报中包含了目的地址的信息,DatagramSocket根据该信息把数据报发送到目的地。 5.1 数据报套接字概述 5.1.1 创建DatagramPacket对象 DatagramPacket表示数据报,它的构造方法可以分为两类: 一类构造方法创建的DatagramPacket对象用来接收数据 还有一类构造方法创建的DatagramPacket对象用来发送数据。 两类构造方法的主要区别是,用于发送数据的构造方法需要设定数据报到达的目的地址,而用于接收数据的构造方法无需设定地址。 5.1.1 创建DatagramPacket对象 1、用于接收数据的构造方法包括: (1)public DatagramPacket(byte[] data,int length) (2)public DatagramPacket(byte[] data,int offset, int length) 以上data参数用来存放接收到的数据,参数length指定要接收的字节数,参数offset指定在data中存放数据的起始位置,即data[offset]。如果没有设定参数offset,那么起始位置为data[0]。 举例: Byte[] buffer=new byte[8912] DatagramPacket datap=new DatagramPacket[buffer,buffer.length] 5.1.1 创建DatagramPacket对象 2、用于发送数据的构造方法包括: (1)public DatagramPacket(byte[] data,int offset, int length,InetAddress address,int port)构造长度为length偏移量为offset,包发送到指定主机端口号的发送数据包 (2) public DatagramPacket(byte[] data,int offset,int length,Sock

文档评论(0)

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

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

1亿VIP精品文档

相关文档