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

C# 使用 UdpClient 實作 UDP 聊天程式(一)

     編輯:關於C語言

UDP 通訊基礎與 UdpClient 類別

UdpClient 類別使用 UDP 協定與網路服務通訊。UDP 的優點在於簡單易用,且能同時向多個位址廣播訊息。但因 UDP 是無連線協定,傳送至遠端端點的資料包不保證送達,也不保證順序。使用 UDP 的應用程式必須自行處理封包遺失與亂序問題。

發送資料前的準備

若要透過 UDP 發送資料包,必須知道提供服務的網路裝置 IP 位址,以及該服務使用的 UDP 通訊埠號碼。

IPv4 廣播位址詳解

特殊的網路位址支援 IP 架構網路上的 UDP 廣播。以下以網際網路常用的 IPv4 位址族為例說明。

IPv4 位址使用 32 位元指定網路位址。對於採用 255.255.255.0 子網路遮罩的 C 類位址,這 32 位元分為四個 8 位元組(octet)。以十進位表示時,形成熟悉的點分四段式,例如 192.168.100.2。前兩個八位元組(192.168)構成網路號;第三個(100)定義子網路;最後一個(2)為主機識別碼。

有限廣播位址

將 IP 位址所有位元設為 1(即 255.255.255.255)構成有限廣播位址。發送資料包至此位址,可將訊息傳遞給該廣播網路上的所有主機。路由器不會轉發發送至此位址的封包,因此只有直接連接的網段主機能收到。

定向廣播位址

將部分位址的所有位元設為 1,可將廣播導向特定網路區段:

  • 欲廣播至 192.168 開頭的網路所有主機,將子網路與主機部分全設為 1:192.168.255.255。
  • 欲限制在單一子網路,僅將主機部分全設為 1:192.168.100.255。

UdpClient 的廣播與監聽限制

UdpClient 可向任何網路廣播位址發送廣播,但無法監聽發送至網路的廣播封包。若需監聽網路廣播,必須使用 Socket 類別。

廣播與多點傳送的選擇

當所有接收者位於單一網路,或許多用戶端需接收廣播時,廣播位址適用。若接收者僅佔網路一小部分,應改用多點傳送群組,只有加入該群組的用戶端才能收到訊息。IP 位址 224.0.0.2 至 239.255.255.255 保留為主機群組位址(註:原文 244.255.255.255 應為筆誤)。224.0.0.0 保留,224.0.0.1 指派給所有 IP 主機的固定群組。

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