UDP协议的输出端:
1 /* 2 UDP发送数据: 3 A:创建Socket发送端对象 4 B:创建数据报包(把数据打包) 5 C:调用Socket对象发送数据报包 6 D:释放资源(底层是IO流) 7 */ 8 public class NewSend { 9 10 public static void main(String[] args) throws IOException { 11 12 // A:创建Socket发送端对象 13 DatagramSocket ds = new DatagramSocket(); 14 15 // B:创建数据报包(把数据打包) 16 // public DatagramPacket(byte[] buf,int length,InetAddress address,int 17 // port) 18 byte[] bys = "UDP发送数据".getBytes(); 19 DatagramPacket dp = new DatagramPacket(bys, bys.length, 20 InetAddress.getByName("172.19.xx.xx"), 10010); 21 22 //C:调用Socket对象发送数据报包 23 ds.send(dp); 24 25 //释放资源 26 ds.close(); 27 } 28 29 }
接收端:
1 /* 2 UDP接收数据: 3 A:创建Socket接收端对象 4 B:创建一个数据报包来接收数据(创建容器) 5 C:调用Socket对象的方法来接收数据报包 6 D:解析数据包(byte转换成String),并打印在控制台 7 E:释放资源 8 */ 9 public class NewReceive { 10 11 public static void main(String[] args) throws IOException { 12 13 //A:创建Socket接收端对象 14 DatagramSocket ds = new DatagramSocket(10010); 15 16 //B:创建一个数据报包来接收数据(创建容器) 17 byte[] bys = new byte[1000]; 18 DatagramPacket dp = new DatagramPacket(bys,bys.length); 19 20 //C:调用Socket对象的方法来接收数据报包 21 ds.receive(dp); 22 23 //获取发送端的ip 24 String ip = dp.getAddress().getHostName(); 25 //D:解析数据包(byte转换成String),并打印在控制台 26 String s = new String(dp.getData(),0,dp.getLength()); 27 //打印到控制台 28 System.out.println(ip+"--"+s); 29 30 //释放资源 31 ds.close(); 32 33 34 }