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

C# 網路程式設計核心類別速查:IPAddress、IPEndPoint、Socket

     編輯:關於C#

前言

C# 網路程式設計本質是對 WinSock 的進一步封裝。掌握核心類別 IPAddress、IPEndPoint、Socket 及三大助手類別,即可高效開發 TCP/UDP 應用。

核心類別速查

1. IPAddress / IPEndPoint / SocketAddress

  • IPAddress:IP 位址封裝,支援 IPv4/IPv6。
  • IPEndPoint:IPAddress + Port,對應 C 的 sockaddr_in。
  • SocketAddress:序列化後的 EndPoint 資料,供底層互操作使用。

常用靜態屬性與方法

IPAddress ip = IPAddress.Parse("192.168.123.1");
IPAddress.Any   // 0.0.0.0  綁定所有介面
IPAddress.None  // 255.255.255.255 建立虛擬 Socket
// 取得本機第一張網卡 IP
IPAddress local = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];

2. Socket 類別建構與型別對應

public Socket(AddressFamily af, SocketType st, ProtocolType pt);
SocketTypeProtocolType協定特性
DgramUDPUDP無連線、資料報
StreamTCPTCP面向連線、可靠串流
RawICMPICMP原始封包、Ping等
RawRawIP原始 IP 封包
// TCP Socket 範例
Socket tcp = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

3. Socket 常用屬性與方法

  • Blocking:同步/非同步模式切換。
  • Connected:僅反映最後一次 I/O 狀態,不可作為即時連線檢測依據。
  • SetSocketOption():設定協定層選項 (TTL、KeepAlive、ReuseAddress 等),詳見 MSDN。
  • Bind/Listen/Accept/Send/Receive:與 WinSock 對應,同步阻塞模式。

4. 例外處理

SocketException 擷取錯誤碼 (SocketErrorCode),依據錯誤碼決定重試、斷線或記錄。

5. 三大助手類別 (簡化常見情境)

  • TcpClient / TcpListener:TCP 客戶端/伺服器高階封裝,內建 NetworkStream。
  • UdpClient:UDP 收發封裝,支援多播。

建議:簡單專案優先用助手類別;需精細控制 (效能、選項、非同步) 再直接操作 Socket。

小結

熟記型別對應表、Connected 語意限制、三大助手類別適用場景,能避開 80% 的網路程式設計坑點。

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