TouchSocket是.Net(包括 C# 、VB.Net、F#)的一個(gè)整合性的、超輕量級(jí)的網(wǎng)絡(luò)通信框架。包含了 tcp、udp、ssl、http、websocket、rpc、jsonrpc、webapi、xmlrpc等一系列的通信模塊。一鍵式解決 TCP 黏分包問題,udp大數(shù)據(jù)包分片組合問題等。使用協(xié)議模板,可快速實(shí)現(xiàn)「固定包頭」、「固定長度」、「區(qū)間字符」等一系列的數(shù)據(jù)報(bào)文解析。
TcpService
TcpService service = new TcpService();
service.Connecting = (client, e) => { };//有客戶端正在連接
service.Connected = (client, e) => { };//有客戶端連接
service.Disconnected = (client, e) => { };//有客戶端斷開連接
service.Received = (client, byteBlock, requestInfo) =>
{
//從客戶端收到信息
string mes = byteBlock.ToString();
Console.WriteLine($"已從{client.ID}接收到信息:{mes}");
client.Send(mes);//將收到的信息直接返回給發(fā)送方
//client.Send("id",mes);//將收到的信息返回給特定ID的客戶端
var clients = service.GetClients();
foreach (var targetClient in clients)//將收到的信息返回給在線的所有客戶端。
{
if (targetClient.ID != client.ID)
{
targetClient.Send(mes);
}
}
};
service.Setup(new TouchSocketConfig()//載入配置
.SetListenIPHosts(new IPHost[] { new IPHost("127.0.0.1:7789"), new IPHost(7790) }))//同時(shí)監(jiān)聽兩個(gè)地址
.Start();//啟動(dòng)
TcpClient
TcpClient tcpClient = new TcpClient();
tcpClient.Connected = (client, e) => { };//成功連接到服務(wù)器
tcpClient.Disconnected = (client, e) => { };//從服務(wù)器斷開連接,當(dāng)連接不成功時(shí)不會(huì)觸發(fā)。
tcpClient.Received = (client, byteBlock, requestInfo) =>
{
//從服務(wù)器收到信息
string mes = Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len);
Console.WriteLine($"接收到信息:{mes}");
};
//聲明配置
TouchSocketConfig config = new TouchSocketConfig();
config.SetRemoteIPHost(new IPHost("127.0.0.1:7789"))
.UsePlugin()
.SetBufferLength(1024 * 10);
//載入配置
tcpClient.Setup(config);
tcpClient.Connect();
tcpClient.Send("RRQM");
https://github.com/RRQM/TouchSocket
該文章在 2023/6/7 16:42:27 編輯過