Socket 兩大操作模式
面向連線 (Connection-Oriented) - TCP
- 如同撥打電話:必須先建立連線
- 資料以串流形式傳輸,保證可靠、有序、無重複
- Java 類別:
Socket、ServerSocket
- 協定開銷較大,但資料安全性高
無連線 (Connectionless) - UDP
- 如同寄送郵件:無需建立連線,直接投遞
- 資料以獨立資料報傳輸,不保證送達、順序、可能重複
- Java 類別:
DatagramSocket、DatagramPacket
- 延遲低、效率高,適合即時性優先場景
模式選擇決策樹
資料是否允許遺失/亂序?
├── 否 → 必須用 TCP
└── 是 → 是否為一對多廣播?
├── 是 → Multicast (UDP)
└── 否 → 即時性要求高?→ UDP
否 → TCP 亦可
Java 網路程式設計優勢
- 跨平台統一 API,屏蔽作業系統差異
- 物件導向封裝,降低開發門檻
- 內建多執行緒支援,輕鬆實作並發伺服器
- 豐富的高層協定支援(HTTP、FTP、SSL/TLS)
本系列規劃
- 傳輸模式比較(本文)
- TCP 客戶端與伺服器實作
- ServerSocket 深度解析
- UDP 資料報與多點傳送
- HTTP 伺服器完整實作