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);
}
}