亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C#實現UDP通信方式

 更新時間:2025年01月07日 16:47:12   作者:一介學徒  
文章介紹了如何使用C#實現UDP通信,包括UDP服務器和客戶端的實現步驟和示例代碼,服務器關鍵類為UdpClient和IPEndPoint,實例化對象后可以通過異步任務發(fā)送數據并接收數據,客戶端同樣使用UdpClient和IPEndPoint,連接到遠程服務器后開新任務接收數據

C#實現UDP通信

一、UDP服務器

  • 1、關鍵類: UdpClient、IPEndPoint;
  • 2、實例化一個UdpClient對象;
  • 3、使用IPEndPoint建立與遠程對象的連接;
  • 4、開一個異步新任務發(fā)送數據;
  • 5、主進程接收數據;

示例代碼:

        public static void Main()
        {
            UdpClient client = new UdpClient(8889);
            CancellationTokenSource cts = new CancellationTokenSource();
            IPEndPoint remotePoint = new IPEndPoint(IPAddress.Any, 0);
            Task.Factory.StartNew(() =>
            {
                while (!cts.IsCancellationRequested)
                {
                    string? sendMessage = Console.ReadLine();
                    if (sendMessage != null)
                    {
                        byte[] data = Encoding.Default.GetBytes(sendMessage);
                        client.Send(data, remotePoint);
                    }
                }
            }, cts.Token);
            while (true)
            {
                byte[] recvdata = client.Receive(ref remotePoint);
                if (recvdata != null)
                {
                    string recvMessage = Encoding.UTF8.GetString(recvdata);
                    if (recvMessage == "quit")
                    {
                        cts.Cancel();
                        client.Close();
                        return;
                    }
                    StringBuilder sb = new StringBuilder("客戶端:");
                    sb.Append(recvMessage);
                    Console.WriteLine(sb);
                }
            }
        }

二、UDP客戶端

  • 1、關鍵類: UdpClient、IPEndPoint;
  • 2、實例化一個UdpClient對象;
  • 3、使用IPEndPoint建立與遠程服務器的連接;
  • 4、開新任務接收數據;
  • 5、主進程發(fā)送數據;

示例代碼:

        public static void Main()
        {
            UdpClient client = new UdpClient(8888);
            IPAddress remoteIp = IPAddress.Parse("127.0.0.1");
            int remotePort = 8889;
            IPEndPoint? remoteEndPoint = new IPEndPoint(remoteIp, remotePort);
            CancellationTokenSource cts = new CancellationTokenSource();

            Task.Factory.StartNew(() =>
            {
                while (!cts.IsCancellationRequested)
                {
                    try
                    {
                        byte[] data = client.Receive(ref remoteEndPoint);
                        if (data != null)
                        {
                            StringBuilder sb = new StringBuilder("服務器:");
                            sb.Append(Encoding.UTF8.GetString(data));
                            Console.WriteLine(sb);
                        }
                    }
                    catch (Exception ex) 
                    {
                        Console.WriteLine(ex.ToString());
                        break ;
                    }
                }
            }, cts.Token);

            while (true)
            {
                string? sendMessage = Console.ReadLine();
                if (sendMessage != null)
                {
                    byte[] data = Encoding.Default.GetBytes(sendMessage);
                    client.Send(data, remoteEndPoint);
                    if (sendMessage == "quit")
                    {
                        cts.Cancel();
                        client.Close();
                        return;
                    }
                }
            }
        }

三、最終效果

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C# 委托的三種調用示例(同步調用 異步調用 異步回調)

    C# 委托的三種調用示例(同步調用 異步調用 異步回調)

    本文將主要通過同步調用、異步調用、異步回調三個示例來講解在用委托執(zhí)行同一個加法類的時候的的區(qū)別和利弊
    2013-12-12
  • C#?使用SpecFlow創(chuàng)建BDD測試用例的示例代碼

    C#?使用SpecFlow創(chuàng)建BDD測試用例的示例代碼

    這篇文章主要介紹了C#?使用SpecFlow創(chuàng)建BDD測試用例,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 關于C#泛型列表List<T>的基本用法總結

    關于C#泛型列表List<T>的基本用法總結

    本篇文章主要是對C#中泛型列表List<T>的基本用法進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • Unity實現模型點擊事件的方法

    Unity實現模型點擊事件的方法

    這篇文章主要介紹了Unity實現模型點擊事件的方法,本文通過多種方法給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • C#實現NPOI的Excel導出詳解

    C#實現NPOI的Excel導出詳解

    這篇文章主要介紹了C#實現NPOI的Excel導出的示例代碼,文中的實現過程講解詳細,對我們的學習或工作有一定的幫助,感興趣的可以跟隨小編一起學習一下
    2022-01-01
  • C#遠程獲取圖片文件流的方法

    C#遠程獲取圖片文件流的方法

    這篇文章主要介紹了C#遠程獲取圖片文件流的方法,涉及C#針對圖片及文件流操作的相關技巧,需要的朋友可以參考下
    2016-02-02
  • C# 擴展方法小結

    C# 擴展方法小結

    這篇文章主要介紹了C#的擴展方法的相關資料,文中講解非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-08-08
  • C#自定義Key類型的字典無法序列化的解決方案詳解

    C#自定義Key類型的字典無法序列化的解決方案詳解

    當我們使用System.Text.Json.JsonSerializer對一個字典對象進行序列化的時候,默認情況下字典的Key不能是一個自定義的類型,本文整理了幾種解決方案,希望對大家有所幫助
    2024-03-03
  • WPF實時繪制心率曲線的示例詳解

    WPF實時繪制心率曲線的示例詳解

    這篇文章主要為大家詳細介紹了WPF實時繪制心率曲線的相關知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2024-04-04
  • C# 使用Microsoft Edge WebView2的相關總結

    C# 使用Microsoft Edge WebView2的相關總結

    這篇文章主要介紹了C# 使用Microsoft Edge WebView2的相關總結,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下
    2021-02-02

最新評論