当前位置: 首页 > news >正文

信阳网站开发公司电话新东方培训机构官网

信阳网站开发公司电话,新东方培训机构官网,做属于公司的网站有什么好处,城阳网站开发公司电话文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的netty#xff0c;Dotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么#xff0c;原本Netty是… 文章目录 概述NIO和BIO、AIODotNetty适用场景DotNetty的整体架构和模块DotNetty的使用示例来源 概述 本系列文章主要讲述由微软Azure团队研发的.net的版本的nettyDotnetty。所有的开发都将基于.net core 3.1版本进行开发。 Dotnetty是什么原本Netty是由JBOSS提供的一个java开源框架后来由微软抄了一份.net的版本, 是业界最流行的NIO框架整合了多种协议 包括FTP、SMTP、 HTTP等各种二进制文本协议的实现经验精心设计的框架在多个大型商业项目中得到充分验证。 NIO和BIO、AIO BIO同步阻塞客户端在请求数据的过程中保持一个连接不能做其他事情。 NIO同步非阻塞客户端在请求数据的过程中不用保持一个连接不能做其他事情。不用保持一个连接而是用许多个小连接也就是轮询 AIO异步非阻塞客户端在请求数据的过程中不用保持一个连接可以做其他事情。客户端做其他事情数据来了等服务端来通知。 DotNetty适用场景 DotNetty适用于高性能的网络编程场景特别是需要高并发、低延迟的场景。以下是几个可能使用DotNetty的场景 实时通信如果您正在构建实时通信应用程序例如聊天应用、实时协作平台等DotNetty可以提供高性能、低延迟的基础设施并支持自定义协议和消息格式。游戏服务器游戏服务器需要处理大量并发连接而且需要快速响应玩家的操作。DotNetty可以提供高效的处理器和优化的消息传递以保证游戏体验的流畅性和可扩展性。IoT应用程序IoT应用程序需要处理大量传感器和设备的数据而且需要在较短的时间内对数据进行处理和分析。DotNetty可以提供高效的编解码器和处理器以便更有效地处理传感器和设备数据。大规模分布式系统在大规模分布式系统中节点之间需要进行高频的通信和数据传输。DotNetty可以提供高效的网络通信框架以便更快地传输数据和执行操作。 举个例子如果您正在构建一个远程存储系统该系统需要处理大量同时连接和数据传输那么DotNetty可能是一个很好的选择。通过使用DotNetty您可以实现高性能、低延迟的数据传输并可以自定义协议和消息格式来适应特定的应用场景。 DotNetty的整体架构和模块 DotNetty的整体架构设计基于Netty框架是一个事件驱动的异步I/O框架不同于传统的同步阻塞I/O框架。 在DotNetty中所有网络事件都被封装成Netty的标准事件并由事件循环线程池负责处理。事件循环线程池由两个线程池组成Boss EventLoopGroup和 Worker EventLoopGroup。Boss EventLoopGroup负责管理并分配新连接到Worker EventLoopGroup中而Worker EventLoopGroup则负责维护这些连接和处理读写事件。 DotNetty的整体架构可以分为以下四个部分 Channel通道是业务逻辑和网络逻辑之间的桥梁。在DotNetty中所有的网络数据都通过Channel来进行传输。 EventLoop事件循环是一个单独的线程用来处理特定类型的事件。每个EventLoop都会绑定一个Selector用于监听Channel中感兴趣的事件。当事件发生时该EventLoop会被唤醒来处理该事件。 ChannelPipeline通道管道是一系列的处理器链用于处理输入和输出的数据流。在DotNetty中所有的数据都经过这个管道在这个管道上可以添加多个处理器来实现业务逻辑。 ChannelHandlerContext通道处理器上下文包含了当前通道的所有状态信息每个ChannelHandlerContext都与一个EventLoop相关联。在处理业务逻辑时可以通过ChannelHandlerContext来发送数据、获取当前通道的状态等。 在DotNetty中还有许多组件模块其中比较重要的有 Transport传输层模块用于处理不同协议的网络连接。 Codec编解码模块用于处理消息的编码和解码。 Handler处理器模块用于实现具体的业务逻辑。 Bootstrap启动器模块用于配置和启动应用程序。 DotNetty的使用示例 using System; using System.Text; using DotNetty.Buffers; using DotNetty.Transport.Bootstrapping; using DotNetty.Transport.Channels; using DotNetty.Transport.Channels.Sockets; namespace EchoServer { class Program { static void Main(string[] args) { var bossGroup new MultithreadEventLoopGroup(1); var workerGroup new MultithreadEventLoopGroup(); try { var bootstrap new ServerBootstrap(); bootstrap.Group(bossGroup, workerGroup) .ChannelTcpServerSocketChannel() .Option(ChannelOption.SoBacklog, 100) .Handler(new LoggingHandler(LISN)) .ChildHandler(new ActionChannelInitializerISocketChannel(channel { var pipeline channel.Pipeline; pipeline.AddLast(new LoggingHandler(CONN)); pipeline.AddLast(new EchoServerHandler()); })); var bindTask bootstrap.BindAsync(8888); bindTask.Wait(); Console.WriteLine($Echo server started and listening on {bindTask.Result.LocalAddress}); Console.ReadLine(); } finally { workerGroup.ShutdownGracefullyAsync().Wait(); bossGroup.ShutdownGracefullyAsync().Wait(); } } } class EchoServerHandler : SimpleChannelInboundHandlerIByteBuffer { protected override void ChannelRead0(IChannelHandlerContext ctx, IByteBuffer msg) { Console.WriteLine($Received message: {Encoding.UTF8.GetString(msg.ToArray())}); ctx.WriteAndFlushAsync(Unpooled.CopiedBuffer(msg)); } public override void ExceptionCaught(IChannelHandlerContext ctx, Exception e) { Console.WriteLine($Exception caught: {e.Message}); ctx.CloseAsync(); } } }此示例实现了一个Echo Server它将客户端发送来的任何消息原封不动地返回给客户端。可以通过以下方式启动该应用程序 dotnet run启动后在另一个终端窗口中使用telnet命令连接到服务器 telnet localhost 8888连接成功后输入任意字符串可以看到服务器返回了一模一样的字符串。 来源 .NET Core3.1 Dotnetty实战第一章 DotNetty一个高性能的基于.Net 平台开发的网络通信框架
http://www.zqtcl.cn/news/505760/

相关文章:

  • 在一呼百应上做网站行吗江西省住房和城乡建设厅的网站
  • 对百度网站进行分析山水人家装饰公司
  • 接网站开发广州仿站定制模板建站
  • 资源网站源码下载制作软件的app有哪些
  • 免备案空间网站电子商务网站经营特色分析的主要内容包括
  • 遨游建站网站设计的基本知识
  • 延津县建设局网站景安网站上传完还要怎么做
  • 模板做网站达州住房和城乡建设部网站
  • 高端网站定做公司企业文化模板
  • iis7.5添加网站销售订单管理系统
  • 网站开发模板代码外贸流程知识
  • 免费网站有哪些邯郸去哪做网站改版
  • 商务网站开发的工作任务湖南专业网站建设
  • 怎样搭建免费网站什么网站做网页好
  • flash工作室网站模板天津seo培训班在哪里
  • 怎么做游戏推广网站扬中商城官网
  • html5 公众号 网站开发顺德手机网站建设
  • 上海医疗网站备案表千库网是什么
  • 陕西省西安市制作网站二次元 wordpress主题
  • 十堰网站建设weitian帮人做logo网站
  • 网站怎么做商家定位长沙网站建设长沙建设银行
  • 山西省建设厅网站查询哈尔滨网站开发电话
  • 网站建设app律师网站素材
  • 安徽 网站建设丹阳杨文军
  • 燃烧学课程网站建设怎么做网站的登录界面
  • 邹城网站定制wordpress托管套餐
  • 沧州网站优化公司logo网站免费
  • 网站制作公司知道万维科技建设银行企业网站无法打印回单
  • 个人网站做贷款广告知乎关键词搜索
  • 常熟外贸网站建设网站突然显示 建设中