码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 一个整合性、功能丰富的.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");

    项目源码地址

    更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

    • 开源地址:https://gitee.com/RRQM_Home/TouchSocket
    • 在线文档:https://touchsocket.net/docs/current/startguide

    优秀项目和框架精选

    该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

    • GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md
    • Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

    作者名称:追逐时光者

    作者简介:一个热爱编程、善于分享、喜欢学习、探索、尝试新事物和新技术的全栈软件工程师。

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。如果该篇文章对您有帮助的话,可以点一下右下角的【♥推荐♥】,希望能够持续的为大家带来好的技术文章,文中可能存在描述不正确的地方,欢迎指正或补充,不胜感激。

  • 相关阅读:
    Redis模块二:缓存分类 + Redis模块三:常见缓存(应用)
    66 - C++中的类型识别
    史上最全的selenium三大等待介绍
    BDD - BDD with Agile 敏捷 BDD
    redis为什么用跳表而不用平衡树
    Java基础——Java语言与面向对象
    【Adobe Illustrator 教程】1. 认识AI并创建第一张画布
    爬虫入门教程:爬虫概述
    通过request请求和servlet实现注册跳转界面案例及问题解决
    Python学习----文件操作
  • 原文地址:https://www.cnblogs.com/Can-daydayup/p/18503611
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号