查看本机IP地址:cmd——ipconfig 代码展示:UDP 发送端 public class UDP { public static void main(String[] args) throws IOException { /* * 创建UDP传输的发送端 * 思路: * 1.建立UDP的socket服务 * 2.将要发送的数据封装到数据包中 * 3.通过UDP的socket服务将数据包发送出去 * 4.关闭socket服务 */ //1.建立UDP的socket服务,使用DatagramSocket对象 DatagramSocket ds=new DatagramSocket(8888); //8888是发送端的端口,也可以不指定,随机生成,并在接收端显示出来
//2.将要发送的数据封装到数据包中 String str="UDP传输演示案例"; //使用DatagramPacket将数据封装到该对象包中 byte[] bytes=str.getBytes(); DatagramPacket dp=new DatagramPacket(bytes,bytes.length, InetAddress.getByName("192.168.1.100"),10000);
//3.通过UDP的socket服务将数据包发送出去,使用send方法 ds.send(dp); //4.关闭资源 ds.close(); } }
代码展示:UDP接收端 public class UDPRec { public static void main(String[] args) throws IOException { System.out.println("接收端启动……"); /* * 建立UDP接受端的思路 * 1.建立socket服务 * 2.创建数据包,用于存储接收到的数据。方便用数据包对象的方法解析这些数据。 * 3.使用socket服务的receive方法将接收的数据存储到数据包中。 * 4.通过数据包的方法解析数据包中的数据。 * 5.关闭资源 */ //1.建立UDP socket服务 因为接收数据,必须明确端口号 DatagramSocket ds=new DatagramSocket(10000); //2.创建数组传入数据包中 byte[] bytes=new byte[1024]; DatagramPacket dp=new DatagramPacket(bytes, bytes.length); //3.使用接收方法将数据存储到数据包中 ds.receive(dp);//阻塞式方法
//4.通过数据包对象的方法,解析其中的数据,比如:IP地址,端口,数据的内容 //获取发送端的 IP地址的字符串表现形式 String ip=dp.getAddress().getHostAddress(); //获取发送端的端口 int port=dp.getPort(); //获取有效的数据 String str=new String(dp.getData(),0,dp.getLength()); //5.关闭socket服务 ds.close(); System.out.println(ip+":"+port+":"+str); } }
|