首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 多線程 Socket 服務端與客戶端實現

     編輯:Java 相關知識

服務端代碼

監聽端口 4311,每接受一個客戶端連接即啟動處理邏輯(此處為演示,實際應交給線程池)。

int port = 4311;
ServerSocket server = new ServerSocket(port);
int clientCount = 0;
while (true) {
    System.out.println("等待客戶 " + clientCount++);
    Socket client = server.accept();
    System.out.println("客戶地址:" + client.getInetAddress());
    // 這裡應啟動新線程處理 client,避免阻塞主循環
    new Thread(() -> handleClient(client)).start();
}

客戶端代碼

連接本地 4311 端口,建立 Socket 通道。

Socket socket = new Socket("localhost", 4311);
// 獲取輸入/輸出流進行通信
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();

關鍵點總結

  • ServerSocket.accept() 阻塞直到有連接到達。
  • 生產環境必須使用線程池(ExecutorService)管理客戶端線程,避免線程耗盡。
  • 通信協議需自定義(如長度前綴、分隔符、序列化)。
  • 異常處理與資源關閉(try-with-resources)不可忽略。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved