(JAVA)UDP发送和接收数据

1. 发送数据

 UDP发送数据的步骤
    1.创建发送端的Socket对象(DatagramSocket)
    2.创建数据,并把数据打包
    3.调用DatagramSocket
    4.关闭发送端

2.发送数据代码


import java.io.IOException;
import java.net.*;

public class SendDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 1.创建发送端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket();
        // 2.创建数据,并把数据打包
        //DatagramPacket​(byte[] buf, int length, InetAddress address, int port)
        byte[] bys = "hello,I'm coming!".getBytes();
        int len = bys.length;
        InetAddress add = InetAddress.getByName("zshao");
        int port = 10086;
        DatagramPacket dp = new DatagramPacket(bys, len, add, port);
        //3.调用DatagramSocket
        ds.send(dp);
        //4.关闭发送端
        ds.close();
        
    }
}

3. 接收数据

UDP接收数据的步骤:
    1.创建接收端的Socket对象(DatagramSocket)
    2.创建一个数据包,用于接受数据
    3.调用DatagramSocket对象的方法接收数据
    4.解析数据包,并显示在控制台上
    5.关闭接收端

4.接收数据代码


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

public class ReceiveDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        // 1.创建接收端的Socket对象(DatagramSocket)
        DatagramSocket ds = new DatagramSocket(10086);
        //2.创建一个数据包,用于接受数据
        byte[] bys = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bys,bys.length);
        //3.调用DatagramSocket对象的方法接收数据
        ds.receive(dp);
        //4。解析数据包,并显示在控制台上
        byte[] data = dp.getData();
        System.out.println("接收到的数据是:"+new String(data,0,dp.getLength()));
        //5.关闭接收端
        ds.close();
    }
}

5.代码运行展示

首先运行接收端,让其等待接受,然后运行发送端,发送数据。发送完成后,接收端显示如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45727931/article/details/108534560