今天剛看懂的一點點東西,記錄一下,方便自己回顧
客戶端:
Client.java
1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 import java.net.SocketException; 6 7 import org.json.JSONObject; 8 9 public class Client { 10 11 private static int port = 7799;//定義端口 數據報要用 12 13 private static String IP = "127.0.0.1";//定義IP地址 數據報要用 14 15 private static DatagramPacket packet = null;//定義要發送的數據報 16 17 public static void main(String[] args) throws IOException{ 18 try( 19 DatagramSocket socket = new DatagramSocket();//創建UDP套接字 20 21 ) { 22 //將數據使用json編碼發送 23 JSONObject jsonObject = new JSONObject();//創建json對象 24 jsonObject.put("test","hello");//給json對象插入數據 25 26 //初始化要發送的數據報參數為 {字節數組}{長度}{地址}{端口} 27 packet = new DatagramPacket(new byte[0], 0, InetAddress.getByName(IP), port); 28 //數據報應該包含發送的目的地址和端口號 29 30 byte[] test = jsonObject.toString().getBytes();//把json對象轉換為字節碼並存入字節數組中 31 32 33 packet.setData(test);//為要發送的數據包指定字節數組(要發送的數據) 34 35 36 socket.send(packet);//發送數據包 37 } 38 catch (SocketException e) { 39 e.printStackTrace(); 40 } 41 42 } 43 }
服務端
server.java
1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 5 import org.json.JSONObject; 6 7 public class server { 8 private static int port = 7799; 9 private String IP = "127.0.0.1"; 10 //創建字節數組准備接收數據 11 private static byte[] test = new byte[1024]; 12 private static DatagramPacket packet = new DatagramPacket(test,test.length); 13 14 public static void main(String[] args) throws IOException { 15 16 DatagramSocket socket = new DatagramSocket(port);//創建UDP套接字 17 socket.receive(packet);//接受數據報 18 19 String hell = new String(test, 0, test.length);//將收到的數據存在字符串中 20 JSONObject jsonObject = new JSONObject(hell);//獲得存儲數據的字符串的json編碼 21 System.out.println(jsonObject); 22 String str = jsonObject.getString("test");//獲取json編碼中test對象的值 23 System.out.println(str); 24 } 25 26 }