詳解C#如何利用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)文章
C#實(shí)現(xiàn)的文件操作封裝類完整實(shí)例【刪除,移動(dòng),復(fù)制,重命名】
這篇文章主要介紹了C#實(shí)現(xiàn)的文件操作封裝類,結(jié)合完整實(shí)例形式分析了C#封裝文件的刪除,移動(dòng),復(fù)制,重命名等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03
C#學(xué)習(xí)筆記- 隨機(jī)函數(shù)Random()的用法詳解
下面小編就為大家?guī)硪黄狢#學(xué)習(xí)筆記- 隨機(jī)函數(shù)Random()的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-08-08
C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法
這篇文章主要介紹了C#實(shí)現(xiàn)驗(yàn)證身份證是否合法的方法,實(shí)例分析了通過自定義函數(shù)實(shí)現(xiàn)針對(duì)身份證合法性驗(yàn)證的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
C#調(diào)用OpenCV開發(fā)簡(jiǎn)易版美圖工具【推薦】
本文主要介紹在WPF項(xiàng)目中使用OpenCVSharp3-AnyCPU開源類庫處理圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-10-10

