(1)类 DatagramSocket 和 DatagramPacket 实现了基于 UDP 协议网络程序。 (2)UDP数据报通过数据报套接字 DatagramSocket 发送和接收,系统不保证 UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达。 (3) DatagramPacket 对象封装了UDP数据报,在数据报中包含了发送端的IP 地址和端口号以及接收端的IP地址和端口号。 public class Demo07 { //UDP的网络编程 @Test //发送端 public void sender() throws IOException { //1、创建Socket对象,但不是Socket而是DatagramSocket DatagramSocket socket = new DatagramSocket(); //2、指明需要发送的数据,并转成数组 加粗样式 String str = “UDP方式发送的数据…”; byte[] bytes = str.getBytes(); //3、创建主机IP InetAddress inte = InetAddress.getLocalHost(); //4、将数据打包成一个报文,并指明IP和 端口号 DatagramPacket packet = new DatagramPacket(bytes,0,bytes.length,inte,9090); //5、发送数据 socket.send(packet); //6、关闭资源 socket.close(); } @Test //接收端 public void receiver() throws IOException { //1、创建Socket对象,但不是Socket而是DatagramSocket,并指明端口号 DatagramSocket socket = new DatagramSocket(9090); //2、创建数组用于接收数据,打包成一个报文 byte[] bytes = new byte[100]; DatagramPacket packet = new DatagramPacket(bytes,0,bytes.length); //3、接收数据 socket.receive(packet); //4、将数据转成字符串并输出 String s = new String(packet.getData(),0,packet.getLength()); System.out.println(s); //5、关闭资源 socket.close(); } }
|