DotNetty使用之Echo

一、DotNetty介绍

DotNetty是微软的Azure团队,使用C#实现的Netty的版本发布。不但使用了C#和.Net平台的技术特点,并且保留了Netty原来绝大部分的编程接口。让我们在使用时,完全可以依照Netty官方的教程来学习和使用DotNetty应用程序。

那Netty又是什么尼?

Netty 是一个提供 asynchronous event-driven (异步事件驱动)的网络应用框架,是一个用以快速开发高性能、可扩展协议的服务器和客户端。

  换句话说,Netty 是一个 NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。

“快速和简单”并不意味着应用程序会有难维护和性能低的问题,Netty 是一个精心设计的框架,它从许多协议的实现中吸收了很多的经验比如 FTP、SMTP、HTTP、许多二进制和基于文本的传统协议.因此,Netty 已经成功地找到一个方式,在不失灵活性的前提下来实现开发的简易性,高性能,稳定性。

 

DotNetty同时也是开源的,它的源代码托管在Github上: https://github.com/azure/dotnetty

Netty 的官方文档 :  http://netty.io/wiki/all-documents.html

二、Echo(应答服务)

看代码学习是最偷懒的方法,(PS:谁还不喜欢偷懒,^~^!),直接看官方的给代码:

服务端:

1、等待连接:

static async Task RunServerAsync()
{
    ExampleHelper.SetConsoleLogger();
    IEventLoopGroup bossGroup;
    IEventLoopGroup workerGroup;
     // DotNetty.Transport 是DotNetty核心的实现,Socket基础框架,通信模式:异步非阻塞。
     // DotNetty.Transport.Libuv是DotNetty自己实现基于Libuv (高性能的,事件驱动的I/O库) 核心的实现。
    if (ServerSettings.UseLibuv)
    {
        // 申明一个主回路调度组
        var dispatcher = new DispatcherEventLoopGroup();
        bossGroup = dispatcher;
        workerGroup = new WorkerEventLoopGroup(dispatcher);
    }
    else
        {
            //一个EventExecutor池
            bossGroup = new MultithreadEventLoopGroup(1);//主工作线程组,设置为1个线程
            workerGroup = new MultithreadEventLoopGroup();
        }

    //加密证书
    X509Certificate2 tlsCertificate = null;
    if (ServerSettings.IsSsl)//如果使用加密通道
    {
        tlsCertificate = new X509Certificate2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值