文档详情

基于UDP协议的Socket通信.pptx

发布:2025-04-17约7.24千字共10页下载文档
文本预览下载声明

基于UDP协议的Socket通信

本章内容2UDP协议的基本概念2.UDP数据报套接字DatagramSocketDatagramSocket的构造方法和主要方法DatagramSocket的选项设置UDP数据报DatagramPacketDatagramPacket的构造方法和主要方法传递基本类型数据和对象UDP协议通信基本过程4.组播的基本概念及实现

UDP协议3用户数据报协议(UDP)是一种基本的、低延时的数据传输协议。UDP的简单性不能保证数据传输的可靠性,但对另一些更复杂的、自身提供面向链接功能的应用却很适合。UDP协议适合以下情况:转发路由表、数据交换、网络监控数据、网络电话应用等的交换。这些类型的交换不需要流控、应答、重排序或任何TCP提供的功能。

UDP协议-数据报通信4UDP协议以数据报作为数据传输的载体。它是一个在网络上发送的独立信息,它的到达、到达时间以及内容本身等都不能得到保证。UDP协议无需在发送方和接收方建立连接,数据报在网上可以以任何可能的路径传往目的地(分组交换)。基于UDP协议实现网络通信的类有三个:DatagramSocketDatagramPacketMulticastSocket邮局A包裹A包裹B包裹C邮局D邮局B邮局C

DatagramSocket5publicDatagramSocket()创建数据报套接字并将其绑定到本地主机的匿名端口。publicDatagramSocket(int?port)?创建数据报套接字并将其绑定到本地主机上的指定端口。publicDatagramSocket(int?port,InetAddress?laddr)创建数据报套接字,将其绑定到指定的IP地址和端口。publicDatagramSocket(SocketAddressbindaddr)创建数据报套接字,SocketAddress表示了要绑定的套接字地址。注意:以上方法都将抛出例外SocketException。

DatagramSocket接收和发送数据publicvoidreceive(DatagramPacket?p)throwsIOException1此方法接收数据报包。当方法返回时,DatagramPacket的缓冲区填充了接收的数据。此方法在接收到数据前一直阻塞。2publicvoidsend(DatagramPacket?p)throwsIOException3此方法发送数据报包。DatagramPacket包含的信息指示将要发送的数据、长度、远程主机的IP地址及其端口号。4抛出异常的可能性小,除非发送的数据报超过了底层网络所支持的数据报的大小。Exceptioninthread“main”java.net.SocketException:Themessageislargerthanthemaximumsupportedbytheunderlyingtransport5

DatagramPacket7用于接收数据的数据包publicDatagramPacket(byte[]?buf,int?length)用来接收长度为length的数据包,放入buf字节数组中publicDatagramPacket(byte[]?buf,int?offset,int?length)用来接收长度为length的数据包,在缓冲区中指定了偏移量。(length=buf.length-offset)用于发送数据的数据包publicDatagramPacket(byte[]?buf,int?length,InetAddressaddress,int?port)用来将长度为length的数据报发送到指定主机上的指定端口号。publicDatagramPacket(byte[]?buf,int?offset,int?length,InetAddress?address,int?port)用来将长度为length,偏移量为offset的数据报发送到指定主机上的指定端口号。见源文件:udp/U

显示全部
相似文档