UDP通信协议:
与TCP通信相似,UDP也是一种通信协议。与TCP不同,TCP指的是是一种面向连接的、可靠的、基于字节流的传输层通信协议,UDP 协议是用户数据报协议的简称,也用于网络数据的传输。虽然 UDP 协议是一种不太可靠的协议,但有时在需要较快地接收数据并且可以忍受较小错误的情况下,UDP 就会表现出更大的优势。
UDP 协议发送数据的步骤:
- 使用 DatagramSocket() 创建一个数据包套接字。
- 使用 DatagramPacket() 创建要发送的数据包。
- 使用 DatagramSocket 类的 send() 方法发送数据包。
UDP 接收数据包的步骤:
- 使用 DatagramSocket 创建数据包套接字,并将其绑定到指定的端口。
- 使用 DatagramPacket 创建字节数组来接收数据包。
- 使用 DatagramPacket 类的 receive() 方法接收 UDP 包。
DatagramPacket 类
java.net 包中的 DatagramPacket 类用来表示数据报包,数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。
构造方法:
构造方法 | 说明 |
---|---|
DatagramPacket(byte[] buf,int length) | 构造 DatagramPacket,用来接收长度为 length 的数据包。 |
DatagramPacket(byte[] buf,int offset, int length) |
构造 DatagramPacket,用来接收长度为 length 的包,在缓 冲区中指定了偏移量。 |
DatagramPacket(byte[] buf,int length, InetAddress address,int port) |
构造 DatagramPacket,用来将长度为 length 的包发送到指 定主机上的指定端口。 |
DatagramPacket(byte[] buf,int length, SocketAddress address) |
构造数据报包,用来将长度为 length 的包发送到指定主机上 的指定端口。 |
DatagramPacket(byte[] buf,int offset, int length,InetAddress address,int port) |
构造 DatagramPacket,用来将长度为 l |