C#中UDP數據的發送、接收


Visual C# UDP數據的發送、接收包使用的主要類及其用法:

用Visual C# UDP協議的實現,最為常用,也是最為關鍵的類就是UdpClient,UdpClient位於命名空間System.Net.Sockets中,Visual C# UDP數據包的發送、接收都是通過UdpClient類的。表01和表02是UdpClient類中常用方法和屬性及其簡要說明。

方法 說明 Close 關閉 UDP 連接 Connect 建立與遠程主機的連接 DropMulticastGroup 退出多路廣播組 JoinMulticastGroup 將 UdpClient 添加到多路廣播組 Receive 返回已由遠程主機發送的 UDP 數據文報 Send 將 UDP 數據文報發送到遠程主機。

屬性 說明 Active 獲取或設置一個值,該值指示是否已建立了與遠程主機的連接 Client 獲取或設置基礎網絡套接字 表02:UdpClient類中常用方法及其說明。

1.Visual C# UdpClient類發送UDP數據包:

在具體使用中,一般分成二種情況:

(1). 知道遠程計算機IP地址:

"Send"方法的調用語法如下:

  1. public int Send ( byte[] dgram , int bytes , IPEndPoint endPoint ) ;  

參數說明:

dgram 要發送的 UDP 數據文報(以字節數組表示)。

bytes 數據文報中的字節數。

endPoint 一個 IPEndPoint,它表示要將數據文報發送到的主機和端口。

返回值 已發送的字節數。

下面使用UdpClient發送UDP數據包的具體的調用例子:

  1. IPAddress HostIP = new IPAddress.Parse ( "遠程計算機IP地址" ) ;   
  2. IPEndPoint host = new IPEndPoint ( HostIP , 8080 ) ;   
  3. UdpClient.Send ( "發送的字節" , "發送的字節長度" , host ) ;  

(2). 知道遠程計算機名稱:

知道遠程計算機名稱后,利用"Send"方法直接把UDP數據包發送到遠程主機的指定端口號上了,這種調用方式也是最容易的,語法如下:

  1. public int Send ( byte[ ] dgram , int bytes , string hostname , int port ) ;  

參數說明:

dgram 要發送的 UDP 數據文報(以字節數組表示)。

bytes 數據文報中的字節數。

hostname 要連接到的遠程主機的名稱。

port 要與其通訊的遠程端口號。

返回值 已發送的字節數。

2.Visual C# UdpClient類接收UDP數據包:

接收UDP數據包使用的是UdpClient中的“Receive"方法。此方法的調用語法如下:

  1. public byte [] Receive ( ref IPEndPoint remoteEP ) ;  

參數說明:

remoteEP 是一個 IPEndPoint類的實例,它表示網絡中發送此數據包的節點。

如果指定了遠程計算機要發送到本地機的端口號,也可以通過偵聽本地端口號來實現對數據的獲取,下面就是通過偵聽本地端口號“8080"來獲取信息代碼:

  1. server = new UdpClient ( ) ;   
  2. receivePoint = new IPEndPoint (new IPAddress ( "127.0.0.1" ) , 8080 ) ;   
  3. byte[] recData = server.Receive ( ref receivePoint ) ;  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM