TCP 提供可靠、有序、雙向的位元組串流服務。Java 以 Socket(客戶端)與 ServerSocket(伺服器)封裝 TCP 協定,提供串流介面:
// 客戶端
Socket socket = new Socket(host, port);
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
// 伺服器端
ServerSocket server = new ServerSocket(port);
Socket client = server.accept();
InputStream in = client.getInputStream();
OutputStream out = client.getOutputStream();
建立連線後,雙端均可進行 開啟 → 讀寫 → 關閉 的標準串流操作,資料到達順序與發送順序完全一致。
TCP 為確保可靠性,引入確認機制、重傳、流量控制、阻塞控制,帶來額外延遲與記憶體開銷。高頻即時應用(如語音、視訊、遊戲)常改用 UDP 或 QUIC 協定。
java.net
├── Socket // TCP 客戶端
├── ServerSocket // TCP 伺服器
├── DatagramSocket // UDP 通用
├── DatagramPacket // UDP 資料單元
└── MulticastSocket // UDP 多點傳送
面向連線類別將在後續章節詳細探討客戶端與伺服器端實作細節。