发送端
package InterUDPdemo; /* - 创建发送端的Socket对象(DatagramSocket) - 创建数据,并把数据打包 - 调用DatagramSocket对象的方法发送数据 - 关闭发送端 */ import java.io.IOException; import java.net.*; public class SendDemo { public static void main(String[] args) throws IOException { //- 创建发送端的Socket对象(DatagramSocket) DatagramSocket ds = new DatagramSocket(); //创建数据,使用getBytes方法将字符串变成字节 byte[] bytes = "hello.gkkhhkk".getBytes(); //创建DatagramPacket数据包对象,构造一个数据包,发送长度为 length的数据包到指定主机上的指定端口号。 DatagramPacket datagramPacket = new DatagramPacket(bytes,bytes.length, InetAddress.getByName("192.168.1.210"),10086); //调用DatagramSocket对象的send方法发送数据 ds.send(datagramPacket); //关闭发送端 ds.close(); } }
接收端
package InterUDPdemo; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; /* - - 创建接收端的Socket对象(DatagramSocket) - 创建一个数据包,用于接收数据 - 调用DatagramSocket对象的方法接收数据 - 解析数据包,并把数据在控制台显示 - 关闭接收端 - */ public class ReceiveDemo { public static void main(String[] args) throws IOException { //创建接收端的Socket对象(DatagramSocket) DatagramSocket dp = new DatagramSocket(10086); //死循环,保持接受端可以一直接受数据 while (true) { // 创建一个字节数组,用于存放解析的数据 byte[] bytes = new byte[1024]; //创建 DatagramPacket数据包对象 DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length); //调用DatagramSocket对象的方法接收数据 dp.receive(datagramPacket); //创建字符串对象通过getdata方法getLength方法解析到字符串中,打印输出 System.out.println("数据是:" + new String(datagramPacket.getData(), 0, datagramPacket.getLength())); } } }