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

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

时间:2024-11-27 09:29:39浏览次数:7  
标签: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://blog.csdn.net/qq_37237487/article/details/144016416

相关文章

  • .NET9 - Swagger平替Scalar详解(四)
    书接上回,上一章介绍了Swagger代替品Scalar,在使用中遇到不少问题,今天单独分享一下之前Swagger中常用的功能如何在Scalar中使用。下面我们将围绕文档版本说明、接口分类、接口描述、参数描述、枚举类型、文件上传、JWT认证等方面详细讲解。01、版本说明我们先来看看默认添加后是......
  • Nettt核心之Future与Promise
    在了解Future之前要明白线程同步和异步线程同步需要等待,线程异步无需等待Netty中的Future机制1,基于jdkFuture改造而来2,保留了同步获取结果的能力,也提供了异步的Listener机制Netty中的Future:Netty自己实现的Future继承了|DK的Future,新增了Listener机制,任务结束会回......
  • 使用Net在Linux环境下调用PowerShell
    前言最近,在使用PowerShell做一些事情,然后需要放到AKS运行。正文一开始,使用的System.Management.Automation调用PowerShell,后来,发现有些功能在AKS下面执行不了,后面才想到使用Process的方式,如下:publicvoidExecutePowerShell(stringscript){try{......
  • PasteEx:一款.NET开源的Windows快捷粘贴神器
    前言PasteEx是一款.NET开源的用于增强Windows粘贴功能的小工具,它解决了将剪贴板内容保存为文件的繁琐步骤。无需打开记事本等应用,它可直接将文字、图片等内容粘贴到桌面上,极大提升了效率。功能特点自定义文本扩展规则:用户可以设置特定的文本扩展规则,以满足不同文件格式的需......
  • Steering Control Based on Frenet-Serret Error Model
    Thekinematicmodelofthevehicleistypicallydescribedbythebicyclemodelasfollows:{......
  • AGI 视界周刊11月第3周:马斯克与OpenAI分歧始末曝光、星舰第六次试验成功实现太空重启
    AGI视界周刊由AGI掘金知识库共建者战场小包维护,每周一更新,包含热点聚焦、应用破局、学术前沿、智见交锋、跨界AI、企业动态和争议AI七大板块,后续板块划分和内容撰写在周刊迭代过程中持续优化,欢迎大家提出。欢迎大家来到《AGI视界周刊10月第3周》(11/18~11/24)。......
  • .NET9 EFcore支持早期MSSQL数据库 ROW_NUMBER()分页
    前言NET程序员是很幸福的,MS在上个月发布了NET9.0RTM,带来了不少的新特性,但是呢,我们是不是还有很多同学软硬件都还没更上,比如,自己的电脑还在跑Win7,公司服务器还在跑MSSQL2005-2008的!这不就引入了我们本文要探索的问题,因为MS早在EFcore3.1后就不再内置支持ROW_NUMBER()了,......
  • asp.net实现微信支付综合管理平台前端页面(支付、订单查询、退款、退款查询)
    <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index4V2.aspx.cs"Inherits="WXPayDemo.index4V2"%><!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat=&q......
  • 如何在ixBrowser中添加并使用Netnut
    如何在ixBrowser中添加并使用Netnut步骤1:首先进入Netnut官网,点击进入工作台,若你已经购买了代理,你可以在上方选择代理类型,国家,输入目标访问地址,并获取去代理信息;步骤2:打开ixBrowser,点击创建窗口,选择平台并输入窗口信息;步骤3:点击下一步进入代理配置界面,选择代理方式为自定......
  • 一个包含了 50+ C#/.NET编程技巧实战练习教程
    DotNetExercises介绍DotNetGuide专栏C#/.NET/.NETCore编程技巧练习集:C#/.NET/.NETCore编程常用语法、算法、技巧、中间件、类库、工作业务实操练习集,配套详细的文章教程讲解,助你快速掌握C#/.NET/.NETCore中各种编程常用语法、算法、技巧、中间件、类库、工作业务实操等等。G......