.net core 下运行 supersocket


 

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

namespace myApp
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var host = SuperSocketHostBuilder
            .Create<StringPackageInfo, CommandLinePipelineFilter>()
            .ConfigurePackageHandler(async (session, package) =>
            {
                var result = 0;
                try
                {
                    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;
                        default:
                            result = -1;
                            break;
                    }
                }
                catch (Exception ex)
                {
                }
                await session.SendAsync(Encoding.UTF8.GetBytes(result.ToString() + "\r\n"));
            })
            .ConfigureLogging((hostCtx, loggingBuilder) =>
            {
                loggingBuilder.AddConsole();
            })
            .ConfigureSuperSocket(options =>
            {
                options.Name = "Echo Server";
                options.Listeners = new[] {
                    new ListenOptions
                    {
                        Ip = "Any",
                        Port = 4040
                    }
                };
            }).Build();
            await host.RunAsync();
        }
    }
}

 

参考资料:https://docs.supersocket.net/v2-0/zh-CN/A-Telnet-Example


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM