首页 > 其他分享 >一个整合性、功能丰富的.NET网络通信框架

一个整合性、功能丰富的.NET网络通信框架

时间:2024-10-26 08:58:27浏览次数:1  
标签:return service EasyTask 整合性 client CompletedTask 功能丰富 NET

前言

最近有不少同学问:.NET网络通信框架有什么好推荐的吗?今天大姚给大家分享一款基于Apache License开源的一个整合性、功能丰富的.NET(包括 C# 、VB.Net、F#)网络通信框架:TouchSocket。

特色功能

一键解决TCP黏分包问题,提供协议模板,支持快速实现固定包头、固定长度、区间字符等数据报文解析。

功能导图

功能模块

集成了socket、TCP、UDP、SSL、namedPipe、HTTP、WebSocket、RPC、JsonRPC、WebAPI、XMLRPC、Modbus等多种通信模块。

支持框架

Console、WPF、Winform、Blazor Server、Xamarin、MAUI、Avalonia、Mono、Unity 3D(除WebGL)等。

支持环境

.NET Framework 4.5及以上,.NET 6.0及以上,.NET Standard 2.0及以上。

项目源代码

简单使用示例

TcpService

TcpService service = new TcpService();
service.Connecting = (client, e) => {return EasyTask.CompletedTask; };//有客户端正在连接
service.Connected = (client, e) => {return EasyTask.CompletedTask; };//有客户端连接
service.Disconnected = (client, e) => {return EasyTask.CompletedTask; };//有客户端断开连接
service.Received = (client, e) =>
{
    //从客户端收到信息
    string mes = e.ByteBlock.ToString();
    Console.WriteLine($"已从{client.Id}接收到信息:{mes}");
    return EasyTask.CompletedTask;
};
service.Start(7789);//启动

TcpClient

TcpClient tcpClient = new TcpClient();
tcpClient.Connected = (client, e) => {return EasyTask.CompletedTask; };//成功连接到服务器
tcpClient.Disconnected = (client, e) => {return EasyTask.CompletedTask; };//从服务器断开连接,当连接不成功时不会触发。
tcpClient.Received = (client, e) =>
{
    //从服务器收到信息
    string mes = Encoding.UTF8.GetString(e.ByteBlock.Buffer, 0, e.ByteBlock.Len);
    Console.WriteLine($"接收到信息:{mes}");
    return EasyTask.CompletedTask;
};

tcpClient.Connect("127.0.0.1:7789");
tcpClient.Send("RRQM");

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看

标签:return,service,EasyTask,整合性,client,CompletedTask,功能丰富,NET
From: https://www.cnblogs.com/Can-daydayup/p/18503611

相关文章

  • 一个基于.NET8+WPF开源的简单的工作流系统
    项目介绍AIStudio.Wpf.AClient是一个基于WPF(WindowsPresentationFoundation)构建的客户端框架,专为开发企业级应用而设计。该项目目前版本为6.0,进行了全面优化和升级,提供了丰富的功能和模块,以满足不同场景下的开发需求。框架截图项目特点自动升级(待部署):虽然......
  • 第十五期 04.ControlNet原理
    一:ControlNet模型的概念ControlNet是一个控制预训练图像扩散模型(例如StableDiffusion)的神经网络。它允许输入调节图像,然后使用该调节图像来操控图像生成。原始SD模型的输入:prompt、sourceimageControlNet模型的输入:canny边缘、语义分割图、关键点、涂鸦等(一)ControlNet......
  • Kubernetes的备份和恢复最佳实践是什么
    Kubernetes备份和恢复最佳实践包括:确保集群数据的完整性和一致性、定期执行备份和测试、利用自动化工具如Velero、备份集群元数据以及工作负载数据、考虑多地域灾备策略。在这些实践中,确保集群数据的完整性和一致性是极其重要的。这意味着在备份过程中,应当捕捉到Kubernetes集群的......
  • 医学图像算法之基于UNet3+(UNet+++)的X射线图像牙齿分割
        第一步:准备数据X射线图像牙齿分割,总共有2000张第二步:搭建模型UNet3+主要是参考了UNet和UNet++两个网络结构。尽管UNet++采用了嵌套和密集跳过连接的网络结构(见图1(b)红色三角区域),但是它没有直接从多尺度信息中提取足够多的信息。此部分,在我理解而言UNet++虽然名义......
  • 医学图像算法之基于UNet3+(UNet+++)的肝脏CT分割
     第一步:准备数据肝脏CT分割,总共有400张第二步:搭建模型UNet3+主要是参考了UNet和UNet++两个网络结构。尽管UNet++采用了嵌套和密集跳过连接的网络结构(见图1(b)红色三角区域),但是它没有直接从多尺度信息中提取足够多的信息。此部分,在我理解而言UNet++虽然名义上通过嵌套和密......
  • Pointnet++改进64:添加SepConv
    简介:1.该教程提供大量的首发改进的方式,降低上手难度,多种结构改进,助力寻找创新点!2.本篇文章对Pointnet++特征提取模块进行改进,加入SepConv,提升性能。3.专栏持续更新,紧随最新的研究内容。目录1.理论介绍2.修改步骤2.1步骤一     2.2步骤二     2.3步......
  • dotnet core微服务框架Jimu介绍
    jimu是一个基于.Net6.0简单易用的微服务框架,参考了很多开源库以及想法,使用了大量的开源库(如DotNetty,consul.net,Flurl.Http,Json.net,Log4net,Quartz.net...),支持分布式、高并发和负载均衡,实现了服务治理(如服务注册、发现、健康检测...)和RPC调用。jimu(积木),正如......
  • kubernetes【k8s介绍】【快速部署应用,管理容器】
    k8s提供:集中式管理集群的方法,也可快速部署应用1.关于部署方案2.什么时候需要k8s当你的应用只是跑在一台机器,直接一个docker+docker-compose就够了,方便轻松;当你的应用需要跑在3,4台机器上,你依旧可以使用每台机器单独配置运行环境+负载均衡器;当你的应用需要跑在10,20台机器......
  • 处理容器报错:[ERROR] .. Get “http://safeline-fvm/skynetinto“: dial tp: lookup s
    雷池社区版(WAF)是基于容器部署的在容器化应用的部署和运行过程中,我们常常会遇到各种报错信息。其中,形如“[ERROR]detect/skynet.go:114Get“http://safeline-fvm/skynetinto":dialtp:lookupsafeline-fvmon127.0.0.11:53:servermisbehaving”以及“panic:Get......
  • 使用Lucene.net来进行索引和检索
    1.去http://lucenenet.apache.org/ 下载lunece.net 文件2.在项目添加引用Lucene.Net.dll classProgram{staticvoidMain(string[]args){//索引Directorydirecotry=FSDirectory.GetDirectory("LuceneIndex");......