Java Socket 和 WebSocket 都是在網絡編程中非常重要的概念。
Java Socket 用于實現基礎的網絡通信,它允許程序員創建基于 TCP 和 UDP 協議的連接。通過 Socket,應用程序可以發送和接收數據。
// 創建一個socket連接 Socket socket = new Socket("localhost", 8080); // 發送數據給服務器 OutputStream outputStream = socket.getOutputStream(); outputStream.write("Hello, server.".getBytes()); // 從服務器接收數據 InputStream inputStream = socket.getInputStream(); byte[] buffer = new byte[1024]; int length = inputStream.read(buffer); System.out.println(new String(buffer, 0, length)); // 關閉socket連接 socket.close();
WebSocket 是一種應用層協議,它建立在 HTTP 協議之上,允許客戶端和服務器之間實現全雙工的通信。與傳統基于 HTTP 請求響應模式的通信不同,WebSocket 連接始終保持活動狀態,可以隨時在客戶端和服務器之間發送消息。
// 創建一個WebSocket連接 WebSocket webSocket = new WebSocket("ws://localhost:8080"); // 監聽WebSocket連接事件 webSocket.addWebSocketListener(new WebSocketListener() { @Override public void onConnect() { System.out.println("Connected to server."); } @Override public void onMessage(String message) { System.out.println("Received message: " + message); } @Override public void onClose() { System.out.println("Disconnected from server."); } @Override public void onError(Exception e) { e.printStackTrace(); } }); // 發送數據給服務器 webSocket.send("Hello, server."); // 關閉WebSocket連接 webSocket.close();
總的來說,Java Socket 適用于基礎的網絡通信,而 WebSocket 更適合實現實時應用程序中的雙向通信。