.NET Framework 提供分層、可擴展的網路服務,主要命名空間:System.Net、System.Net.Sockets。從 TCP/IP 邏輯層面看,可分為三層:
WebRequest、WebResponse,支援 HTTP、TCP、UDPTcpClient、TcpListener、UdpClient 封裝連線細節Socket 類,最底層控制,當上層無法滿足特殊需求時使用Socket 可視為資料通道,連接客戶端與伺服器。資料收發皆針對此通道進行。
// TCP Socket
Socket tcpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// UDP Socket
Socket udpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
| 類別 | 方法 | 說明 |
|---|---|---|
| 客戶端 | Connect | 建立到遠端裝置的連線 |
Send/SendTo | 發送資料到連線的 Socket | |
Receive/ReceiveFrom | 從連線的 Socket 接收資料 | |
| 伺服器端 | Bind | 將 Socket 繫結到本地端點 |
Listen | 將 Socket 置於監聽狀態 | |
Accept | 建立新 Socket 處理傳入連線 | |
Shutdown | 停用 Socket 的發送與接收 | |
Close | 強制關閉 Socket 連線 | |
EndPoint 代表網路地址與埠號的組合。IPv4 使用 IPEndPoint。
// 直接解析字串
IPAddress ip = IPAddress.Parse("192.168.1.2");
// 透過 DNS 解析主機名
IPHostEntry hostInfo = Dns.GetHostEntry("host.contoso.com");
IPAddress ip = hostInfo.AddressList[0];
SocketException:作業系統層級 Socket 錯誤ArgumentNullException:參數為 nullObjectDisposedException:操作已關閉的 SocketSocket 實例Connect → Send → Receive → Shutdown → CloseBind → Listen → Accept → 處理通訊 → Shutdown → Close後續文章將深入探討非同步 Socket、SSL/TLS 整合、效能調優等進階主題。