1. UDP 协议与之前讲到的 TCP 协议不同,是面向无连接的,双方不需要建立连接便可通 信。UDP 通信所发送的数据需要进行封包操作(使用 DatagramPacket 类),然后才能接 收或发送(使用 DatagramSocket 类)。 <br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/25812280/1650467456642-8ea15b0e-174a-4ec5-9d55-a34ae5de5a0d.png#clientId=ude461474-2a30-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=279&id=uf8566da1&margin=%5Bobject%20Object%5D&name=image.png&originHeight=525&originWidth=1007&originalType=binary&ratio=1&rotation=0&showTitle=false&size=243340&status=done&style=none&taskId=u1f923d48-b4bd-4957-ac10-1ae8370c465&title=&width=536)<br />**DatagramPacket:数据容器(封包)的作用 :**<br />此类表示数据报包。 数据报包用来实现将发送的数据进行封包处理的。

    常用方法:

    1. DatagramPacket(byte[] buf, int length) :构造数据报包,用来指定长度为 length 的数据包。
    2. DatagramPacket(byte[] buf, int length, InetAddress address, int port) :构造数据报包,用来将长度为 length 的包发送到指定主机上的指定端口号。
    3. getAddress() :获取发送或接收方计算机的 IP 地址,此数据报将要发往该机器或 者是从该机器接收到的。 getData() :获取发送或接收的数据。
    4. setData(byte[] buf) :设置发送的数据。

    DatagramSocket:用于发送或接收数据报包 :
    当客户端要向服务端发送数据时,需要在客户端产生一个 DatagramSocket 对象,在 服务端产生一个 DatagramSocket 对象。客户端的 DatagramSocket 将 DatagramPacket 发送到网络上,然后被服务端的 DatagramSocket 接收。

    常用方法:

    1. DatagramSocket(int port) :创建数据报套接字并将其绑定到本地主机上的指定 端口。
    2. send(DatagramPacket p) :从此套接字发送数据报包。
    3. receive(DatagramPacket p) :从此套接字接收数据报包。
    4. close() :关闭此数据报套接字。

    UDP 通信编程基本步骤 :

    1. 创建服务器端的 DatagramSocket,创建时,定义服务器端的监听端口。
    2. 创建客户端的 DatagramSocket,创建时,定义客户端的监听端口。
    3. 在服务器端定义 DatagramPacket 对象,封装待接收的数据包。
    4. 客户端将数据报包发送出去。
    5. 服务器端接收数据报包。