while (true) {
Socket s = serverSocket.accept(); // 阻塞等待客戶端連線
// 處理 s ...
}
accept() **每次返回一個新的 Socket**,代表**一個新的客戶端連線**。accept() 返回 Socket。accept()。accept() 等待**下一個新客戶端**連線。accept() 迴圈。Socket s 後,**立即交給工作執行緒池** 處理該客戶端的完整會話(讀寫迴圈)。accept() 等待新連線。ExecutorService pool = Executors.newCachedThreadPool();
while (true) {
Socket client = serverSocket.accept();
pool.execute(() -> handleClient(client)); // 處理完整會話
}
以為「客戶端每發一次資料就 accept 一次」 → 會導致伺服器只能處理單一請求隨即關閉,無法支援長連線或多路複用。