官方學習資料:一個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