用java实现UDP数据传输;
为了演示,发送端和接收端都是本机;
端口是自己设置的,如果端口被其他程序占用,自行修改;
代码示例:
发送端
import java.net.*;
import java.util.Scanner;
public class UDPDemo {
public static void main(String[] args) throws Exception{
//创建UDP服务,通过DatagramSocket对象
DatagramSocket ds = new DatagramSocket();
//确定数据,并封装成数据包,DatagramPacket(byte[] buf, int length, InetAddress address, int port)
//键盘录入
Scanner input = new Scanner(System.in);
String str = input.nextLine();
byte[] buf = str.getBytes();
DatagramPacket dp =
new DatagramPacket(buf, buf.length, InetAddress.getByName("这里填接收端的IP地址"), 10001);
//通过socket服务,将已有数据发出去
ds.send(dp);
//关闭资源
ds.close();
}
}
接收端
import java.net.*;
public class UDPRece {
public static void main(String[] args) throws Exception{
//创建UDP socket 建立端点
DatagramSocket ds = new DatagramSocket(10001);
//定时数据包 用于存储数据
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);
//通过服务的receive方法将收到的数据存入数据包中
ds.receive(dp);
//通过数据包的方法获取数据
String str = new String(dp.getData(), 0, dp.getLength());
System.out.println(str);
//关闭资源
ds.close();
}
}