JAVA UDP协议实现例子

JAVA提供了DatagramSocket类作为基于UDP协议的Socket

发送数据

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

public class SendDemo {
    public static void main(String[] args) throws IOException {
        //DatagramSocket()
        //构造数据报套接字并将其绑定到本地主机上的任何可用端口。
        DatagramSocket da = new DatagramSocket();

        //DatagramPacket(byte[] buf, int length, InetAddress address, int port)
        //构造用于发送长度的分组的数据报包 length指定主机上到指定的端口号。

        byte[] bye="爷来辣".getBytes();
        int len=bye.length;
        InetAddress adress = InetAddress.getByName("192.168.1.255");
        int port=10086;
        DatagramPacket dp=new DatagramPacket(bye,len,adress,port);
        //public void send(DatagramPacket p)
        //从此套接字发送数据报包
        da.send(dp);
        //close()
        //关闭此数据报套接字。
        da.close();
    }
}

接受数据

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

public class ReciveDemo {
    public static void main(String[] args) throws IOException {
        //DatagramSocket(int port)
        //构造数据报套接字并将其绑定到本地主机上的指定端口。
        DatagramSocket d=new DatagramSocket(10086);
        //创建数据包,接收数据
        //        DatagramPacket(byte[] buf, int length)
        //        构造一个 DatagramPacket用于接收长度的数据包 length
        byte[] bye=new byte[1024];
        DatagramPacket dp = new DatagramPacket(bye,bye.length);
        //接受数据
        d.receive(dp);
        //解析数据并输出数据
        //getData()
        //返回数据缓冲区。
        byte[] datas=dp.getData();
        String temp=new String(datas);
        System.out.println(temp);
    }
}

posted @ 2020-10-25 16:20  一个经常掉线的人  阅读(150)  评论(0编辑  收藏  举报