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

C# .NET 網路 Socket 程式開發入門 (一)

     編輯:關於C語言

.NET 網路程式設計分層架構

.NET Framework 提供分層、可擴展的網路服務,主要命名空間:System.Net、System.Net.Sockets。從 TCP/IP 邏輯層面看,可分為三層:

  • 請求/回應層:WebRequest、WebResponse,支援 HTTP、TCP、UDP
  • 應用協定層:TcpClient、TcpListener、UdpClient 封裝連線細節
  • 傳輸層:Socket 類,最底層控制,當上層無法滿足特殊需求時使用

Socket 核心概念

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 連線

端點與 IP 位址處理

EndPoint 代表網路地址與埠號的組合。IPv4 使用 IPEndPoint。

取得 IPAddress

// 直接解析字串
IPAddress ip = IPAddress.Parse("192.168.1.2");

// 透過 DNS 解析主機名
IPHostEntry hostInfo = Dns.GetHostEntry("host.contoso.com");
IPAddress ip = hostInfo.AddressList[0];

常見異常處理

  • SocketException:作業系統層級 Socket 錯誤
  • ArgumentNullException:參數為 null
  • ObjectDisposedException:操作已關閉的 Socket

開發流程建議

  1. 建立 Socket 實例
  2. 客戶端:Connect → Send → Receive → Shutdown → Close
  3. 伺服器:Bind → Listen → Accept → 處理通訊 → Shutdown → Close
  4. 妥善處理異常與資源釋放

後續文章將深入探討非同步 Socket、SSL/TLS 整合、效能調優等進階主題。

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