发短信:不用连接,需要知道对方的地址!

发送端

package top.ltyzqhh.Net;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class UdpClientDemo01 {
    public static void main(String[] args) throws Exception {
        //1.建立一个Socket
        DatagramSocket socket = new DatagramSocket();
        //2.建包
        String msg="你好啊,服务器!";
        //发送给谁
        InetAddress localhost = InetAddress.getByName("127.0.0.1");
        int port =9000;
        //数据,数据长度,要发送的对象
        DatagramPacket packet = new DatagramPacket(msg.getBytes(), 0, msg.getBytes().length, localhost, 9000);
        //3.发包
        socket.send(packet);
        //4.关闭流
        socket.close();
    }
}

接收端

package top.ltyzqhh.Net;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

//等待客户端连接
public class UdpServiceDemo01 {
    public static void main(String[] args) throws Exception {
        //开放端口
        DatagramSocket socket = new DatagramSocket(9000);
        //接收数据包
        byte[] buffer = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buffer, 0, buffer.length);//接收

        socket.receive(packet);//阻塞接收

        System.out.println(packet.getAddress().getHostName());
        System.out.println(new String(packet.getData(),0,packet.getLength()));

        //关闭链接
        socket.close();
    }
}

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e101015b-e2c8-4a82-b96b-25a87bd90f7d/Snipaste_2021-05-01_19-08-15.png