欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

寫在前面

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

代碼實(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();
    }

客戶端代碼

    static void TcpClientTest()
    {
        Console.WriteLine("TcpClient");
 
        var msg = "這是來自客戶端的消息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)閉客戶端  
 
        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)文章

最新評(píng)論