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(); } }