UDP基本步骤

接收端

package udp;


import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;


/**
 * @author 王
 * @FileName javaproject
 * @Date 2019/12/2 10:13
 * 接收端
 * 同一个协议下端口不允许冲突
 * 1.使用DatagramSocket 指定端口创建接收端
 * 2.准备容器分装成DatagramPacket包裹
 * 3.阻塞式接收包裹receive(DatagramSocket p)
 * 4.分析数据
 * byte[] getData()
 *          getLength()
 *5.释放资源
 */
public class UdpServer {

    public static void main(String[] args) throws IOException {

        System.out.println("接收方启动中...");
        //使用DataGramSocket  指定端口创建接收端
        DatagramSocket server =  new DatagramSocket(9999);
        //2.准备容器分装成DatagramPacket包裹
        byte[] container = new byte[1024*60];
        DatagramPacket packet = new DatagramPacket(container,0,container.length);
        //3.阻塞式接收包裹receive(DatagramSocket p)
        server.receive(packet);
        //4.分析数据
        byte[] datas =packet.getData();
        int len =packet.getLength();
        System.out.println(new String(datas,0,len));
        //5.释放资源
        server.close();
    }
}

发送端

package udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

/**
 * @author 王
 * @FileName javaproject
 * @Date 2019/12/2 10:14
 * 发送端
 * 1.使用DataGramSocket 指定端口创建发送端
 * 2.准备数据,一定要转成字节数组.
 * 3.封装成DataGramPacket包裹,需要指定目的地  ip+port
 * 4.发送包裹send(DataGramPacket p)
 *5.释放资源
 */
public class UdpClient {

    public static void main(String[] args) throws IOException {

        System.out.println("发送方启动中...");
        //1.使用DataGramSocket 指定端口创建发送端
        DatagramSocket client = new DatagramSocket(8888);
        //2.准备数据,一定要转成字节数组.
        String data ="2019.12.2";
        byte[] datas=data.getBytes();
        //3.封装成DataGramPacket包裹,需要指定目的地  ip+port
        DatagramPacket packet = new DatagramPacket(datas,0,datas.length,
                new InetSocketAddress("localhost",9999));
        //4.发送包裹send(DataGramPacket p)
        client.send(packet);
        //5.释放资源
        client.close();
    }
}

你可能感兴趣的:(JAVA学习笔记)