查看原文
其他

关于.NET 6 中 Quic

DotNet 2022-07-19

↓推荐关注↓

Quic简介


目前该技术已经被.NET 6 内部集成 System.Net.Quic,未来开发低延迟的项目将更加简单。


Quic场景


这里不得不说到 HTTP 3.0 协议, 让网页加载变的一块再快,游戏行业,发包率频繁的行业都是不错的 场景 本身就是基于Udp的上层协议,最大程度的降低了开发 高频率,低延迟的应用复杂度,对核心技术的要求大大降低。


一、创建QuicListener


代码如下(示例):

using System;
using System.Net.Quic;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var options = new System.Net.Security.SslServerAuthenticationOptions();
            QuicListener quicListener = new(System.Net.IPEndPoint.Parse("192.168.1.22:666"), options);
            quicListener.Start();
            QuicConnection quicConnection = quicListener.AcceptConnectionAsync().Result;
   QuicStream quicStream = quicConnection.AcceptStreamAsync().Result;
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }
}

二、建立连接 QuicConnection

代码如下(示例):

using System;
using System.Net.Quic;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            QuicConnection quic = new(System.Net.IPEndPoint.Parse("192.168.1.22:666"), new System.Net.Security.SslClientAuthenticationOptions());
            quic.ConnectAsync().AsTask().Wait();
            QuicStream quicStream = quic.AcceptStreamAsync().Result;
            Console.WriteLine("Hello World!");
            Console.ReadKey();
        }
    }
}

三、QuicStream

代码如下(示例):

using System;
using System.Net.Quic;
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            quicStream.WriteAsync(System.Text.Encoding.UTF8.GetBytes("哈哈哈"));
            byte[] buffer;
            int count = quicStream.ReadAsync(buffer = new byte[1000]).Result;
            string str = System.Text.Encoding.UTF8.GetString(buffer, 0, count);
            Console.WriteLine(str);
            Console.ReadKey();
        }
    }
}

总结

提示:目前 System.Net.Quic 还在完善中,后期会更加理想,一起期待吧!

转自:逆-血

链接:blog.csdn.net/qq_33484542/article/details/114578164

- EOF -

推荐阅读  点击标题可跳转
.NET Core 中使用NLog把日志写入数据库并按天自动分表
理解ASP.NET Core-文件服务器(File Server)使用 .NET6 打造动态 API


看完本文有收获?请转发分享给更多人

推荐关注「DotNet」,提升.Net技能 

点赞和在看就是最大的支持❤️

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存