實現功能:客戶端發送一個字符串(能夠爲漢字),服務器端接收並顯示java
服務器端程序:編程
package udpServer; import java.io.*; import java.net.*; /** * 服務端 * 一、建立服務+端口 * 二、準備接受容器 byte數組 * 三、把接收容器封裝成包 DatagramPacket * 四、接受數據 * 五、分析數據 */ public class server { public static void main(String[] args) throws IOException { //1.建立服務+端口 DatagramSocket server = new DatagramSocket(9999); //2.準備接受容器 byte[] container = new byte[1024]; //3.封裝成包 DatagramPacket(byte buf[], int length) DatagramPacket packet = new DatagramPacket(container, container.length); //4.接受數據 (阻塞式接受) server.receive(packet); //5.分析數據 byte[] data = packet.getData(); System.out.println(new String(data, "utf-8")); //6.釋放資源 server.close(); } }
客戶端程序:數組
package udpClient; import java.io.*; import java.net.*; /** * 一、建立客戶端+端口 * 二、準備數據 字節數組 * 三、給數據打包 並指定發送的目的地和端口 * 四、發送 * 五、釋放 * * 思考 : 發送有類型的數據 怎麼處理 如對象 數字 等等 */ public class client { public static void main(String[] args) throws IOException { //1.建立客戶端+端口 DatagramSocket client = new DatagramSocket(8888); //2.準備要發送的數據 字節數組 String msg = "UDP編程"; byte[] data = msg.getBytes("utf-8"); //3.給數據打包 並指定發送的目的地和端口 DatagramPacket(byte buf[], int length, InetAddress address, int port) InetAddress address = InetAddress.getByName("127.0.0.1"); DatagramPacket packet = new DatagramPacket(data, data.length, address, 9999); //4.發送 client.send(packet); //5.釋放 client.close(); } }