import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; /** * udp socket 接收端 * * @author Administrator * */ public class UDPRecive { public static void main(String[] args) throws IOException { System.out.println("------------接收端---------"); // 一、建立socket服务 DatagramSocket datagramSocket = new DatagramSocket(8888); while (true) { byte[] b = new byte[1024]; // 二、建立数据包用于存储接收到的数据 DatagramPacket dp = new DatagramPacket(b, b.length); // 三、将接收的数据存入数据包 datagramSocket.receive(dp); // 四、解析数据包中的数据 String ip = dp.getAddress().getHostAddress(); int port = dp.getPort(); String str = new String(dp.getData(), 0, dp.getLength()); System.out.println(ip + ":" + port + "== " + str); } } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; /** * udp socket 发送端 * * @author Administrator * */ public class UDPSend { public static void main(String[] args) throws IOException { System.out.println("-----发送端-------"); // 一、创建udp的socket服务 DatagramSocket ds = new DatagramSocket(9999); BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 获取键盘录入信息 String line = null; while ((line = br.readLine()) != null) { if ("end".equalsIgnoreCase(line)) { break; } byte[] b = line.getBytes(); // 二、将要发送的数据封装到数据包中 DatagramPacket dp = new DatagramPacket(b, b.length, InetAddress.getByName("127.0.0.1"), 8888); // 三、经过udp的socket服务将数据包发送出去 ds.send(dp); // 四、关闭socket服务 } ds.close(); } }