接收端
package net.udp; import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class UDPRecevie { public static void main(String[] args) throws IOException { /* * 1.建立服务 * 2.创建数据包,用于接受数据 * 3.使用socket服务的方法将接受到的数据放在数据包中 * 4.通过数据包方法对象解析数据,如端口等 * 5.关闭资源 */ System.out.println("recevice..."); //明确端口号 DatagramSocket ds = new DatagramSocket(10000); byte[] buf = new byte[1024]; DatagramPacket dp = new DatagramPacket(buf, buf.length); ds.receive(dp); //阻塞 //4 String ip = dp.getAddress().getHostAddress(); int port = dp.getPort(); String text = new String(dp.getData(), 0, dp.getLength()); System.out.println(ip+":"+port+":"+text); ds.close(); } }
发送端
package net.udp;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class UDPSend {
public static void main(String[] args) throws IOException {
/*
* 1.建立udp的socket服务
* 2.封装数据
* 3.将包发送过去
* 4.关闭socket
*/
System.out.println("send...");
//指定
DatagramSocket ds = new DatagramSocket(8888);
String str = " udp data ......";
byte[] buf = str.getBytes();
DatagramPacket dp = new DatagramPacket(buf, buf.length, InetAddress.getByName("10.1.35.73"), 10000);
//3
ds.send(dp);
//4
ds.close();
}
}