SuperSocket 2.0学习01:一个Telnet示例

官方学习资料:一个Telnet示例

本文开发环境:Win10 + VS2019 + .NetCore 3.1 + SuperSocket 2.0.0-beta.8

Gitee:SuperSocketV2Sample

1、创建项目

使用VS2019创建一个.NetCore控制台程序,目标框架选择.NET Core 3.1。

2、引入SuperSocket类库

使用NuGet工具搜索SuperSocket(需要勾选“包括预发行版”),选择最新的版本(目前是2.0.0-beta.8)安装。

3、TelnetServer代码

复制代码
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using SuperSocket;
using SuperSocket.ProtoBase;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

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

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

                    //发送消息给客户端
                    await session.SendAsync(Encoding.UTF8.GetBytes(result.ToString() + "\r\n"));
                })
                //配置服务器如服务器名和监听端口等基本信息
                .ConfigureSuperSocket(options =>
                {
                    options.Name = "Echo Server";
                    options.Listeners = new[]
                    {
                        new ListenOptions
                        {
                            Ip = "Any",
                            Port = 4040
                        }
                    }.ToList();
                })
                //配置日志
                .ConfigureLogging((hostCtx, loggingBuilder) =>
                {
                    loggingBuilder.AddConsole();
                })
                .Build();
            await host.RunAsync();
        }
    }
}
复制代码

4、测试TelnetServer

在控制台中使用下面命令连接并测试TelnetServer。

telnet 127.0.0.1 4040

posted @   xhubobo  阅读(1248)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
点击右上角即可分享
微信分享提示