用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(); } }
接收端
1.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(); } }