前段时间使用了supersocket Client端,今天测试一下服务端
using StraightLineSorting.Helper;
using SuperSocket;
using SuperSocket.ProtoBase;
using System.Text;
namespace StraightLineSorting.Communication
{
public static class TCPServerA
{
public static IAppSession sessionA = null;
public static List<IAppSession> sessionList = new List<IAppSession>();
static IHost host = null;
public static async Task RunServer()
{
host = SuperSocketHostBuilder.Create<TextPackageInfo, LinePipelineFilter>()
.UseSessionHandler(async (session) =>
{
await session.SendAsync(Encoding.UTF8.GetBytes($"conn {session.SessionID}" + "\r\n"));
sessionList.Add(session);
})
.UsePackageHandler(async (s, p) =>
{
await s.SendAsync(Encoding.UTF8.GetBytes(p.Text + "\r\n"));
})
.ConfigureSuperSocket(options =>
{
options.Name = "Echo Server";
options.AddListener(new ListenOptions
{
Ip = "Any",
Port = 4040
}
);
})
.ConfigureLogging((hostCtx, loggingBuilder) =>
{
loggingBuilder.AddConsole();
LogHelper.Debug("SuperSocketHostBuilder");
})
.Build();
await host.RunAsync();
LogHelper.Debug("SuperSocketHostBuilder start");
}
public static void send(string cmd)
{
sessionList.ForEach(a =>
{
a.SendAsync(Encoding.UTF8.GetBytes($"{cmd}" + "\r\n"));
});
}
}
}
使用SuperSocket创建TCP服务器
该博客展示了如何利用SuperSocket库构建一个简单的TCP服务器。在C#代码中,定义了一个静态类`TCPServerA`,它包含了启动服务器、发送数据到客户端的功能。服务器监听4040端口,接收到客户端连接时会发送确认消息,并将连接添加到会话列表中。之后,服务器可以广播消息到所有已连接的客户端。
1万+

被折叠的 条评论
为什么被折叠?



