发送方: package com.sxt.test03; import java.net.*; import java.util.Scanner; /** * 发送方 * * @author Administrator * */ public class SentTest { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); //创建套接字 DatagramSocket ds = new DatagramSocket(12345); while(true){ //输入发送的信息 System.out.print("我:"); String str = sc.next(); //将String 转换成 字节数组进行传送 byte[] b = new byte[10]; b = str.getBytes(); //创建传送的数据包 DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName("192.168.3.70"), 9999); //开始发送 ds.send(dp); //判断是否可以退出循环 if("886".equals(str)){ break; } //接收信息 //数据接收的数组 byte[] bb = new byte[1024]; //创建接收的数据包 DatagramPacket dps = new DatagramPacket(bb, bb.length); //开始接受 ds.receive(dps); //将接收的信息打印在控制台 String strs = new String(dps.getData(),0,dps.getLength()); System.out.println(dps.getAddress().getHostAddress()+": "+ strs); //判断是否可以退出循环 if("886".equals(strs)){ break; } } ds.close(); } } 接收方:
package com.sxt.test03; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner; /** * 接收方 * @author Administrator * */ public class ReceiveTest { public static void main(String[] args) throws Exception{ Scanner sc = new Scanner(System.in); //创建套接字 DatagramSocket ds = new DatagramSocket(9999); while(true){ //数据接收的数组 byte[] b = new byte[1024]; //创建接收的数据包 DatagramPacket dp = new DatagramPacket(b, b.length); //开始接受 ds.receive(dp); //将接收的信息打印在控制台 String str = new String(dp.getData(),0,dp.getLength()); System.out.println(dp.getAddress().getHostAddress()+": "+ str); //判断是否可以退出循环 if("886".equals(str)){ break; } //接收方进行回复 byte[] bb = new byte[10]; System.out.print("咨询老师:"); String strr = sc.next(); bb = strr.getBytes(); DatagramPacket dpr = new DatagramPacket(bb, bb.length, InetAddress.getByName(dp.getAddress().getHostAddress()), dp.getPort()); ds.send(dpr); //判断是否可以退出循环 if("886".equals(strr)){ break; } } //关闭套接字 ds.close(); } }
基于udp的传输通信
最新推荐文章于 2022-04-27 14:37:16 发布