SuperSocket教程九:启动一个Core版本的SuperSocket服务器

前面的教程都是关于SuperSocket1.6的,SuperSocket1.6仅支持.net framework。如果你后期需要去.net core 进行开发该怎么办呢?SuperSocket的作者也给了我们.net core版本,那我们来看看如何使用吧!
第一步:首先你自己创建一个.net core 的控制台程序,我这里自己也创建了一个.net 5 的程序,尽量与我保持一致。

第二步:然后去nuget一些SuperSocket2.0的三个dll

在这里插入图片描述

这个时候你又很大的几率是找不到他们的 全是SuperSocket1.6的,因为这些包是预发行版的 所以

在这里插入图片描述

这里勾上

在这里插入图片描述

引入这三个 然后就可以开始了。


老规矩 先把可以用的代码放上来


using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Hosting;
using SuperSocket;
using SuperSocket.ProtoBase;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;

namespace SuperSocketVersionTwo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var host = SuperSocketHostBuilder.Create<StringPackageInfo, CommandLinePipelineFilter>().//创建宿主
                UsePackageHandler(async (session, package) =>//注册用于处理接收到的数据的包处理器
                {
        
            try
            {
                var result = 0;
                switch (package.Key.ToUpper())
                {
                    case ("ADD"):
                        result = package.Parameters
                            .Select(p => int.Parse(p))
                            .Sum();
                        break;

                    case ("SUB"):
                        result = package.Parameters
                            .Select(p => int.Parse(p))
                            .Aggregate((x, y) => x - y);
                        break;

                    case ("MULT"):
                        result = package.Parameters
                            .Select(p => int.Parse(p))
                            .Aggregate((x, y) => x * y);
                        break;
                }

                await session.SendAsync(Encoding.UTF8.GetBytes(result.ToString() + "\r\n"));
            }
            catch (System.Exception)
            {

                System.Console.WriteLine("指令错误");
            }
        
     }).ConfigureSuperSocket(options =>//配置服务器如服务器名和监听端口等基本信息
     {
         options.Name = "Echo Server";
         options.ReceiveBufferSize = 2048;
         options.Listeners = new List<ListenOptions>(){
            new ListenOptions{
                Ip="Any",
                Port = 5466
            }
         };
     }).Build();
            await host.RunAsync();
        }
    }
}



现在也是创建好了一个SuperSocket服务端,可以计算加减法,运行一下看看效果 然后就可以开始深入了

在这里插入图片描述

可以看到是异步创建的socket服务,目的应该是为了跑很多个服务端吧
那我们就试试

果然如此 开启了两个服务端
接下来添砖加瓦 让它变成一个真正的服务端
那么应该会提供和.net framework相同的一些功能
只是写法不再一样
————————————————
版权声明:本文为CSDN博主「亮大大大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38083655/article/details/111307454

https://blog.csdn.net/weixin_38083655/article/details/111307454

猜你喜欢

转载自blog.csdn.net/ba_wang_mao/article/details/114918988