发送端代码:
/* UDP发送数据:数据来自于键盘录入,如果输入的数据是886,发送数据结束 */ public class SendDemo { public static void main(String[] args) throws IOException { //1.创建发送端对象 DatagramSocket ds = new DatagramSocket(); //2.创建数据,数据来自于键盘录入 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; while ((line = br.readLine()) != null) { if (line.equals("886")) { break; } //将录入的数据打包 byte[] bys = line.getBytes(); DatagramPacket dp = new DatagramPacket(bys, bys.length, InetAddress.getByName("192.168.50.76"), 12345); //发送数据 ds.send(dp); } //关闭发送端 ds.close(); } }
接收端代码:
/* UDP接收数据:因为接收端不知道发送端什么时候停止发送,故采用死循环接收 */ public class ReceviedDemo { public static void main(String[] args) throws IOException { //创建DatagramSokcet对象接收端 DatagramSocket ds = new DatagramSocket(12345); while (true) { //创建数据包,用于接收数据 byte[] bys = new byte[1024]; DatagramPacket dp = new DatagramPacket(bys, bys.length); //调用方法接收数据 ds.receive(dp); //解析数据包,并把数据在控制台输出 System.out.println("数据是:" + new String(dp.getData(), 0, dp.getLength())); } } }
发送端发送数据:
接收端收到数据:
原文:https://www.cnblogs.com/pxy-1999/p/12845088.html