zoukankan      html  css  js  c++  java
  • .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() + "
    "));
                })
                .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

  • 相关阅读:
    QPushButton设置背景图片,设置背景透明度
    QMessageBox 弹窗提示总结
    Qt中 QObject * sender() const的用法
    Java获取文件后缀
    Qt QLabel设置背景色
    Qt 设置程序图标
    程序猿 tensorflow 入门开发及人工智能实战
    Github + Hexo 搭建博客
    Linux常用命令
    深度学习路线记录
  • 原文地址:https://www.cnblogs.com/hellowzl/p/14442360.html
Copyright © 2011-2022 走看看