日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

c#中tcp协议服务器同时接收客户端的数据

發布時間:2023/12/18 C# 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c#中tcp协议服务器同时接收客户端的数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
 //服務器為每一個連接客戶端產生一個線程,這樣接受多個連接:
private?TcpListener?tcpListener;
private?Thread?listenThread;

public?Server()
{
????this.tcpListener?=?new?TcpListener(IPAddress.Any,?3000);
????this.listenThread?=?new?Thread(new?ThreadStart(ListenForClients));
????this.listenThread.Start();
}

private?void?ListenForClients()
{
????this.tcpListener.Start();
????while?(true)
????{
????????//blocks?until?a?client?has?connected?to?the?server
????????TcpClient?client?=?this.tcpListener.AcceptTcpClient();

????????//create?a?thread?to?handle?communication
????????//with?connected?client
????????Thread?clientThread?=?new?Thread(new?ParameterizedThreadStart(HandleClientComm));
????????clientThread.Start(client);
????}
}

private?void?HandleClientComm(object?client)
{
????TcpClient?tcpClient?=?(TcpClient)client;
????NetworkStream?clientStream?=?tcpClient.GetStream();

????byte[]?message?=?new?byte[4096];
????int?bytesRead;

????while?(true)
????{
????????bytesRead?=?0;
????????try
????????{
????????????//blocks?until?a?client?sends?a?message
????????????bytesRead?=?clientStream.Read(message,?0,?4096);
????????}
????????catch
????????{
????????????//a?socket?error?has?occured
????????????break;
????????}

????????if?(bytesRead?==?0)
????????{
????????????//the?client?has?disconnected?from?the?server
????????????break;
????????}

????????//message?has?successfully?been?received
????????ASCIIEncoding?encoder?=?new?ASCIIEncoding();
????????System.Diagnostics.Debug.WriteLine(encoder.GetString(message,?0,?bytesRead));
????}
????tcpClient.Close();
} 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的c#中tcp协议服务器同时接收客户端的数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。