最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用UdpClient類進行簡單通信的實例

 更新時間:2016年12月12日 11:43:00   作者:弎吩鍾熱℃  
本文主要介紹了C#使用UdpClient類進行簡單通信的實例,具有很好的參考價值,需要的朋友可以看下

UdpClient 類提供了一些簡單的方法,用于在阻止同步模式下發(fā)送和接收無連接 UDP 數(shù)據(jù)報。 因為 UDP 是無連接傳輸協(xié)議,所以不需要在發(fā)送和接收數(shù)據(jù)前建立遠程主機連接。但您可以選擇使用下面兩種方法之一來建立默認遠程主機:

  • 使用遠程主機名和端口號作為參數(shù)創(chuàng)建 UdpClient 類的實例。
  • 創(chuàng)建 UdpClient 類的實例,然后調(diào)用 Connect 方法。

可以使用在 UdpClient 中提供的任何一種發(fā)送方法將數(shù)據(jù)發(fā)送到遠程設(shè)備。 使用 Receive 方法可以從遠程主機接收數(shù)據(jù)。

UdpClient 方法還允許發(fā)送和接收多路廣播數(shù)據(jù)報。 使用 JoinMulticastGroup 方法可以將 UdpClient 預(yù)訂給多路廣播組。 使用 DropMulticastGroup 方法可以從多路廣播組中取消對 UdpClient 的預(yù)訂。

/// <summary>
/// 客戶端
/// </summary>
class UDPSender
{
  static void Main(string[] args)
  {
    //創(chuàng)建一個UdpClient對象,0表示系統(tǒng)自動分配發(fā)送端口
    //(若同時在本機運行服務(wù)端和客戶端,則服務(wù)端接收和客戶端發(fā)送需要使用不同端口,否則兩個程序使用同一端口將引發(fā)沖突)
    UdpClient udpSender = new UdpClient(0);
    //連接到服務(wù)端并指定接收端口
    udpSender.Connect("localhost", 11000);
    //連接到子網(wǎng)廣播地址并指定接收端口
    //udpSender.Connect("192.168.1.255", 11000);
    //(在使用TCP/IP協(xié)議的網(wǎng)絡(luò)中,主機標(biāo)識段全為1的IP地址為廣播地址,廣播地址傳送給主機標(biāo)識段所涉及的所有計算機。
    //例如,對于192.168.1.0(255.255.255.0)網(wǎng)段,其廣播地址為192.168.1.255(255的2進制即為11111111),
    //當(dāng)發(fā)出目的地址為192.168.1.255時,它將分發(fā)給該網(wǎng)段上的所有計算機。)
    //把消息轉(zhuǎn)換成字節(jié)流發(fā)送到服務(wù)端
    byte[] sendBytes = Encoding.ASCII.GetBytes("Is anybody there?");
    udpSender.Send(sendBytes, sendBytes.Length);
    //關(guān)閉鏈接
    udpSender.Close();
  }
}
/// <summary>
/// 服務(wù)端
/// </summary>
class UDPReceive
{
  static void Main(string[] args)
  {
    //創(chuàng)建一個UdpClient對象,11000為接收端口
    UdpClient udpReceive = new UdpClient(11000);
    //設(shè)置遠程主機,(IPAddress.Any, 0)代表接收所有IP所有端口發(fā)送的數(shù)據(jù)
    IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);//或 IPEndPoint remoteIpEndPoint = null;
    //監(jiān)聽數(shù)據(jù),接收到數(shù)據(jù)后,把數(shù)據(jù)轉(zhuǎn)換成字符串并輸出
    byte[] receiveBytes = udpReceive.Receive(ref remoteIpEndPoint);
    string returnData = Encoding.ASCII.GetString(receiveBytes);
    Console.WriteLine("This is the message you received " + returnData.ToString());
    Console.WriteLine("This message was sent from " + remoteIpEndPoint.Address.ToString() + " on their port number " + remoteIpEndPoint.Port.ToString()); 
    //關(guān)閉連接
    udpReceive.Close();
  }
}

備注:需要先運行服務(wù)端,再運行客戶端。否則客戶端在服務(wù)端運行之前就已經(jīng)發(fā)出數(shù)據(jù),則服務(wù)端不會接收到數(shù)據(jù)。

下面是使用 UdpClient 類進行多路廣播組的簡單例子,加入相同的廣播組地址即可實現(xiàn)多播。多路廣播地址的范圍從 224.0.0.0 到 239.255.255.255 ,服務(wù)端和客戶端使用同一廣播地址即可實現(xiàn)多播。

/// <summary>
/// 多路廣播組客戶端
/// </summary>
class MulticastGroupClient
{
  static void Main(string[] args)
  {
    //創(chuàng)建一個UdpClient對象,0表示系統(tǒng)自動分配發(fā)送端口
    var client = new UdpClient(0);
    //將廣播地址添加到多路廣播組,生存期(路由器跳數(shù))為10
    var ip = IPAddress.Parse("234.56.78.90");
    client.JoinMulticastGroup(ip, 10);
    //定義終結(jié)點(服務(wù)端IP和接收端口),把消息轉(zhuǎn)換成字節(jié)流后發(fā)送到服務(wù)端
    var multicast = new IPEndPoint(ip, 7788);
    byte[] bytes = Encoding.ASCII.GetBytes("Hello from multicast.");
    client.Send(bytes, bytes.Length, multicast);
  }
}
/// <summary>
/// 多路廣播組服務(wù)端
/// </summary>
class MulticastGroupServer
{
  static void Main(string[] args)
  {
    //創(chuàng)建一個UdpClient對象,7788為接收端口
    var client = new UdpClient(7788);
    //將廣播地址添加到多路廣播組,生存期(路由器跳數(shù))為10
    var ip = IPAddress.Parse("234.56.78.90");
    client.JoinMulticastGroup(ip, 10);
    //設(shè)置遠程主機,(IPAddress.Any, 0)代表接收所有IP所有端口發(fā)送的數(shù)據(jù)
    var multicast = new IPEndPoint(IPAddress.Any, 0);//或 IPEndPoint multicast = null;
    //監(jiān)聽數(shù)據(jù),接收到數(shù)據(jù)后,把數(shù)據(jù)轉(zhuǎn)換成字符串并輸出
    byte[] bytes = client.Receive(ref multicast);
    string msg = Encoding.ASCII.GetString(bytes);
    Console.WriteLine(msg);
  }
}

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!

相關(guān)文章

  • C#五類運算符使用表達式樹進行操作

    C#五類運算符使用表達式樹進行操作

    這篇文章介紹了C#五類運算符使用表達式樹進行操作,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • WPF實現(xiàn)繪制扇形統(tǒng)計圖的示例代碼

    WPF實現(xiàn)繪制扇形統(tǒng)計圖的示例代碼

    這篇文章主要介紹了如何利用WPF繪制扇形統(tǒng)計圖,文中的示例代碼講解詳細,對我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • c#之滾動字幕動畫窗體的實現(xiàn)詳解

    c#之滾動字幕動畫窗體的實現(xiàn)詳解

    本篇文章是對c#中滾動字幕動畫窗體的實現(xiàn)方法進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • C#與PHP的md5計算結(jié)果不同的解決方法

    C#與PHP的md5計算結(jié)果不同的解決方法

    今天在用C#接入我的登錄api發(fā)現(xiàn)了一個問題,登陸的時候無論如何都會出現(xiàn)用戶名和密碼錯誤的問題,后來通過查找排除找的了問題的原因是因為C#與PHP的md5計算結(jié)果不同導(dǎo)致的,下面就來看看如何解決這個問題吧。
    2016-12-12
  • C#編寫發(fā)送郵件組件

    C#編寫發(fā)送郵件組件

    本文給大家分享的是使用C#編寫的發(fā)送郵件的組件,非常的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C#利用正則表達式實現(xiàn)獲取字符串中漢字的數(shù)量

    C#利用正則表達式實現(xiàn)獲取字符串中漢字的數(shù)量

    這篇文章主要為大家詳細介紹了C#如何利用正則表達式實現(xiàn)獲取字符串中漢字的數(shù)量,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • c# split分隔字符串使用方法

    c# split分隔字符串使用方法

    本文主要介紹了c#使用split分隔字符串的使用方法,大家參考使用吧
    2014-01-01
  • C# 創(chuàng)建報表過程詳解

    C# 創(chuàng)建報表過程詳解

    本文給大家介紹的是使用vs2012 c#創(chuàng)建報表的全部過程的記錄,十分的詳細,有需要的小伙伴可以參考下。
    2015-06-06
  • Unity3D基于陀螺儀實現(xiàn)VR相機功能

    Unity3D基于陀螺儀實現(xiàn)VR相機功能

    這篇文章主要為大家詳細介紹了Unity3D基于陀螺儀實現(xiàn)VR相機功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Unity實現(xiàn)彈球打磚塊游戲

    Unity實現(xiàn)彈球打磚塊游戲

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)彈球打磚塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05

最新評論

宜黄县| 建瓯市| 盐源县| 高邮市| 秦皇岛市| 宁阳县| 东阳市| 喀喇| 化州市| 阜阳市| 资阳市| 万年县| 安图县| 准格尔旗| 忻城县| 姚安县| 安义县| 巴林右旗| 申扎县| 廊坊市| 泰州市| 南漳县| 吉首市| 荣成市| 得荣县| 和田县| 郯城县| 大同县| 宜兰市| 鹤山市| 遂昌县| 保定市| 新丰县| 沁阳市| 英吉沙县| 沙田区| 商丘市| 神池县| 富民县| 阳信县| 信宜市|