前面的教程都是关于SuperSocket1.6的,SuperSocket1.6仅支持.net framework。如果你后期需要去.net core 进行开发该怎么办呢?SuperSocket的作者也给了我们.net core版本,那我们来看看如何使用吧!
第一步:首先你自己创建一个.net core 的控制台程序,我这里自己也创建了一个.net 5 的程序,尽量与我保持一致。
第二步:然后去nuget一些SuperSocket2.0的三个dll
这个时候你又很大的几率是找不到他们的 全是SuperSocket1.6的,因为这些包是预发行版的 所以
这里勾上
引入这三个 然后就可以开始了。
老规矩 先把可以用的代码放上来
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Hosting;
using SuperSocket;
using SuperSocket.ProtoBase;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections.Generic;
namespace SuperSocketVersionTwo
{
class Program
{
static async Task Main(string[] args)
{
var host = SuperSocketHostBuilder.Create<StringPackageInfo, CommandLinePipelineFilter>().//创建宿主
UsePackageHandler(async (session, package) =>//注册用于处理接收到的数据的包处理器
{
try
{
var result = 0;
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;
}
await session.SendAsync(Encoding.UTF8.GetBytes(result.ToString() + "\r\n"));
}
catch (System.Exception)
{
System.Console.WriteLine("指令错误");
}
}).ConfigureSuperSocket(options =>//配置服务器如服务器名和监听端口等基本信息
{
options.Name = "Echo Server";
options.ReceiveBufferSize = 2048;
options.Listeners = new List<ListenOptions>(){
new ListenOptions{
Ip="Any",
Port = 5466
}
};
}).Build();
await host.RunAsync();
}
}
}
现在也是创建好了一个SuperSocket服务端,可以计算加减法,运行一下看看效果 然后就可以开始深入了
可以看到是异步创建的socket服务,目的应该是为了跑很多个服务端吧
那我们就试试
果然如此 开启了两个服务端
接下来添砖加瓦 让它变成一个真正的服务端
那么应该会提供和.net framework相同的一些功能
只是写法不再一样
————————————————
版权声明:本文为CSDN博主「亮大大大」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_38083655/article/details/111307454
https://blog.csdn.net/weixin_38083655/article/details/111307454