| 特性 | UDP (Datagram) | TCP (Stream) |
|---|---|---|
| 連線模型 | 無連線 | 面向連線(虛擬連接) |
| 資料單位 | 獨立資料包 | 位元組流 |
| 可靠性 | 不保證送達、不保證順序、可能重複 | 保證送達、保證順序、無重複 |
| 程式介面 | DatagramSocket / DatagramPacket | Socket / ServerSocket → InputStream / OutputStream |
| 複雜度 | 應用層處理重傳、排序、丟包 | 協議層透明處理,應用層如檔案 I/O 般簡單 |
InputStream/OutputStream,讀寫網路如同讀寫檔案、管道、主控台,統一 I/O 模型,降低認知負擔。TCP 連線由 四元組 唯一確定:(本地IP, 本地Port, 遠端IP, 遠端Port)。伺服器端 ServerSocket.bind(port) 監聽;客戶端 new Socket(serverIP, port) 主動連線。雙方各自綁定本地 Port,使作業系統能將封包正確分派給對應進程/執行緒。
應用層資料 (位元組流)
↓
TCP 層分段、加序號、檢查和
↓
IP 層封裝成 IP 數據報 (路由、分片)
↓
網路傳輸
↓
接收端 IP 層重組 → TCP 層檢查、排序、ACK → 應用層讀取有序位元組流
將深入 Socket、ServerSocket API 實戰:同步阻塞 I/O 模型、半關閉、緩衝區調優、異常處理最佳實踐。