a端
import java.io.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
 * a端发送“今天星期几”给b端
 */
public class UDPa {
    public static void main(String[] args) throws IOException {
        //a端绑定9999端口————a端从9999接收消息
        DatagramSocket dgSocket = new DatagramSocket(9999);
        byte[] bytes = "今天星期几?".getBytes();
        // public DatagramPacket(byte buf[], int offset, int length,
        //                          InetAddress address, int port)
        DatagramPacket packet = new DatagramPacket(bytes, 0, bytes.length,
                InetAddress.getLocalHost(), 9998);
        dgSocket.send(packet);
        byte[] bytes2 = new byte[1024];
        //public DatagramPacket(byte buf[], int length)
        packet = new DatagramPacket(bytes2,bytes2.length);
        dgSocket.receive(packet);
        System.out.println("a接收到的信息:"+new String(packet.getData()));
        dgSocket.close(); // 记得关闭流!
    }
}
b端
import java.io.*;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
 * b端接收a端发来的消息,并打印
 *  b再发送给a:“星期一”
 */
public class UDPb {
    public static void main(String[] args) throws IOException {
        //b端绑定9998端口————b端从9998接收消息
        DatagramSocket dgSocket = new DatagramSocket(9998);
        byte[] bytes = new byte[1024];
        //public DatagramPacket(byte buf[], int length)
        DatagramPacket packet = new DatagramPacket(bytes,bytes.length);
        dgSocket.receive(packet);
        System.out.println("b接收到的信息:"+new String(packet.getData()));
        byte[] bytes2 = "今天星期一。".getBytes();
        // public DatagramPacket(byte buf[], int offset, int length,
        //                          InetAddress address, int port)
        packet = new DatagramPacket(bytes2, 0, bytes2.length,
                InetAddress.getLocalHost(), 9999);
        dgSocket.send(packet);
        dgSocket.close();
    }
}
运行结果

 
参考资料
https://www.bilibili.com/video/BV1fh411y7R8?p=678













![[超硬核] 5000字带走读DuckDB优化器之常量折叠与比较简化](https://img-blog.csdnimg.cn/img_convert/5e3b59815cfbd2865440255a4e9c8a46.jpeg)





![[源码系列:手写spring] IOC第十四节:容器事件和事件监听器](https://img-blog.csdnimg.cn/ed06f497402740a38cd7b3e24d9aba3c.png)