監聽端口 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)不可忽略。