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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM