Java Socket 是 Java 語言提供的基本網絡通信接口,可以通過網絡傳輸各種數據格式,其中包括 JSON 格式。
在使用 Java Socket 傳輸 JSON 數據時,我們需要借助 JSON 工具庫,例如 fastjson、Jackson 等,在導入相關的 Jar 包后就可以輕松地完成數據的封裝和解析。
/** * 服務器端代碼 */ public class Server { private static final int PORT = 8888; public static void main(String[] args) throws IOException { ServerSocket serverSocket = new ServerSocket(PORT); Socket socket = serverSocket.accept(); InputStream inputStream = socket.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); // 消息是一個json字符串 String message = reader.readLine(); // 解析json字符串 JSONObject jsonObject = JSON.parseObject(message); // 輸出解析結果 System.out.println("name: " + jsonObject.getString("name")); System.out.println("age: " + jsonObject.getInteger("age")); // 關閉流和socket socket.close(); inputStream.close(); reader.close(); serverSocket.close(); } }
/** * 客戶端代碼 */ public class Client { private static final String SERVER_IP = "127.0.0.1"; private static final int PORT = 8888; public static void main(String[] args) throws IOException { Socket socket = new Socket(SERVER_IP, PORT); OutputStream outputStream = socket.getOutputStream(); PrintWriter printWriter = new PrintWriter(outputStream); // 構造json字符串數據 JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "Tom"); jsonObject.put("age", 20); // 發送json字符串數據 printWriter.print(jsonObject.toString()); printWriter.flush(); // 關閉流和socket printWriter.close(); outputStream.close(); socket.close(); } }
使用 Java Socket 傳輸 JSON 數據是一種簡單高效的方式,同時也能滿足大部分的數據通信需求。