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

Java Socket 程式設計(三):ServerSocket 建立與連線處理流程

     編輯:Java 相關知識

伺服器 Socket 基礎

ServerSocket 是 Java 實作 TCP 伺服器的核心類別,負責綁定埠號、監聽連線請求。建構子接受兩個參數:埠號與回log(等待佇列長度)。

// 綁定埠 80,回log 長度 5
ServerSocket serverSocket = new ServerSocket(80, 5);

第二個參數為選填,預設值 50。回log 代表作業系統允許排隊的未處理連線數,超過則拒絕新連線。

連線接受與 I/O 流建立

accept() 方法會封鎖直到有客戶端連入,回傳新的 Socket 物件代表此連線:

Socket clientSocket = serverSocket.accept();
// 建立資料流
DataInputStream in = new DataInputStream(clientSocket.getInputStream());
DataOutputStream out = new DataOutputStream(clientSocket.getOutputStream());

標準伺服器處理迴圈

  1. 建立 ServerSocket 並開始監聽
  2. 呼叫 accept() 取得客戶端 Socket
  3. 建立輸入/輸出流
  4. 依應用協定進行會話邏輯
  5. 關閉客戶端流與 Socket
  6. 回步驟 2 或關閉伺服器 Socket

阻塞特性說明

accept() 為阻塞呼叫,若佇列無連線請求,執行緒將進入等待狀態。單執行緒迭代式伺服器一次僅能服務一個客戶端,高併發場景需採用執行緒池或 NIO 非阻塞模式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved