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

詳解C#如何利用TcpListener和TcpClient實(shí)現(xiàn)Tcp通訊

 更新時(shí)間:2023年12月25日 10:06:00   作者:rjcql  
TcpListener 和 TcpClient 是在 System.Net.Sockets.Socket 類(lèi)的基礎(chǔ)上做的進(jìn)一步封裝,使用 GetStream 方法返回網(wǎng)絡(luò)流,下面我們就來(lái)詳細(xì)一下如何使用TcpListener和TcpClient實(shí)現(xiàn)Tcp通訊吧

寫(xiě)在前面

TcpListener 和 TcpClient 是在 System.Net.Sockets.Socket 類(lèi)的基礎(chǔ)上做的進(jìn)一步封裝,使用 GetStream 方法返回網(wǎng)絡(luò)流,由于是以流的方式讀取數(shù)據(jù),所以在使用過(guò)程中更容易有粘包和分包的問(wèn)題,還不如直接使用Socket類(lèi)來(lái)的方便。

代碼實(shí)現(xiàn)

服務(wù)端代碼

    static void TcpListenerTest()
    {
        Console.WriteLine("TcpListener Server");
        var tcpListener = new TcpListener(IPAddress.Parse("127.0.0.1"), 9090);
        tcpListener.Start();
        Console.WriteLine("TcpListener Start");
        var task = Task.Run(() =>
        {
            while (true)
            {
                var tcpClient = tcpListener.AcceptTcpClient();
                var buffer = new byte[tcpClient.ReceiveBufferSize];
                var stream = tcpClient.GetStream();
                stream.Read(buffer, 0, buffer.Length);
                stream.Close();
                tcpClient.Close();
                var receivedMsg = string.Empty;
                receivedMsg += Encoding.UTF8.GetString(buffer).Trim('\0');
                Console.WriteLine("收到消息:" + receivedMsg);
 
                // 服務(wù)端心跳間隔
                Thread.Sleep(1000);
            }
        });
 
        Console.ReadLine();
    }

客戶(hù)端代碼

    static void TcpClientTest()
    {
        Console.WriteLine("TcpClient");
 
        var msg = "這是來(lái)自客戶(hù)端的消息111";
        var client = new TcpClient("127.0.0.1", 9090);
        var sendStream = client.GetStream();
        var sendBytes = Encoding.Default.GetBytes(msg);
        sendStream.Write(sendBytes, 0, sendBytes.Length);
        sendStream.Flush();
        sendStream.Close();//關(guān)閉網(wǎng)絡(luò)流  
        client.Close();//關(guān)閉客戶(hù)端  
 
        Console.WriteLine(msg);
 
        Console.ReadLine();
    }

執(zhí)行結(jié)果

到此這篇關(guān)于詳解C#如何利用TcpListener和TcpClient實(shí)現(xiàn)Tcp通訊的文章就介紹到這了,更多相關(guān)C# Tcp通訊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實(shí)現(xiàn)的文件操作封裝類(lèi)完整實(shí)例【刪除,移動(dòng),復(fù)制,重命名】

    C#實(shí)現(xiàn)的文件操作封裝類(lèi)完整實(shí)例【刪除,移動(dòng),復(fù)制,重命名】

    這篇文章主要介紹了C#實(shí)現(xiàn)的文件操作封裝類(lèi),結(jié)合完整實(shí)例形式分析了C#封裝文件的刪除,移動(dòng),復(fù)制,重命名等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • C#學(xué)習(xí)筆記- 隨機(jī)函數(shù)Random()的用法詳解

    C#學(xué)習(xí)筆記- 隨機(jī)函數(shù)Random()的用法詳解

    下面小編就為大家?guī)?lái)一篇C#學(xué)習(xí)筆記- 隨機(jī)函數(shù)Random()的用法詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法

    C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法,實(shí)例分析了通過(guò)自定義函數(shù)實(shí)現(xiàn)針對(duì)身份證合法性驗(yàn)證的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#調(diào)用OpenCV開(kāi)發(fā)簡(jiǎn)易版美圖工具【推薦】

    C#調(diào)用OpenCV開(kāi)發(fā)簡(jiǎn)易版美圖工具【推薦】

    本文主要介紹在WPF項(xiàng)目中使用OpenCVSharp3-AnyCPU開(kāi)源類(lèi)庫(kù)處理圖片,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2019-10-10
  • C#使用foreach語(yǔ)句遍歷集合類(lèi)型的方法

    C#使用foreach語(yǔ)句遍歷集合類(lèi)型的方法

    這篇文章主要介紹了C#使用foreach語(yǔ)句遍歷集合類(lèi)型的方法,可實(shí)現(xiàn)通過(guò)foreach語(yǔ)句遍歷集合類(lèi)的功能,需要的朋友可以參考下
    2015-06-06
  • C# DataTable使用方法詳解

    C# DataTable使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了C# DataTable的使用方法,感興趣的小伙伴們可以參考一下
    2016-02-02
  • WPF實(shí)現(xiàn)3D立方體波浪墻效果

    WPF實(shí)現(xiàn)3D立方體波浪墻效果

    這篇文章主要為大家詳細(xì)介紹了WPF實(shí)現(xiàn)3D立方體波浪墻效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • C#中類(lèi)與接口的區(qū)別個(gè)人總結(jié)

    C#中類(lèi)與接口的區(qū)別個(gè)人總結(jié)

    這篇文章主要介紹了C#中類(lèi)與接口的區(qū)別個(gè)人總結(jié),本文講解了類(lèi)與接口的區(qū)別、接口的用處主要體現(xiàn)在下面幾個(gè)方面、一些接口的疑問(wèn)等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • C# 以MDF文件鏈接數(shù)據(jù)庫(kù)的示例代碼

    C# 以MDF文件鏈接數(shù)據(jù)庫(kù)的示例代碼

    本篇文章主要介紹了C# 以MDF文件鏈接數(shù)據(jù)庫(kù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • C#創(chuàng)建背景色漸變窗體的方法實(shí)例

    C#創(chuàng)建背景色漸變窗體的方法實(shí)例

    在窗體設(shè)計(jì)時(shí),可以通過(guò)設(shè)置窗體的BackColor屬性來(lái)改變窗口的背景顏色,但是該屬性改變后整個(gè)窗體的客戶(hù)區(qū)都會(huì)變成這種顏色,這樣顯得非常單調(diào),本文給大家介紹了C#創(chuàng)建背景色漸變窗體的方法實(shí)例,需要的朋友可以參考下
    2024-04-04

最新評(píng)論