using Microsoft.Extensions.Logging; using System; using System.Text; using TouchSocket.Core; using TouchSocket.Sockets; namespace SlnMesnac.TouchSocket { public class TcpServer { private ILogger _logger; private readonly TcpService _service; public TcpServer(ILogger logger,TcpService tcpService) { _logger = logger; _service = tcpService; } public void Init(int serverPort) { try { _service.Connecting = (client, e) => { _logger.LogInformation($"客户端{client.IP}正在接入服务"); }; _service.Connected = (client, e) => { _logger.LogInformation($"客户端{client.IP}接入服务成功,Id:{client.ID}"); }; _service.Disconnected = (client, e) => { _logger.LogInformation($"客户端{client.IP}断开连接,Id:{client.ID}"); }; _service.Received = (client, byteBlock, requestInfo) => { //if (requestInfo is MyFixedHeaderRequestInfo myRequestInfo) //{ // string body = Encoding.UTF8.GetString(myRequestInfo.Body, 0, myRequestInfo.Body.Length); //} }; _service.Setup(new TouchSocketConfig()//载入配置 .SetListenIPHosts(new IPHost[] { new IPHost($"0.0.0.0:{serverPort}") }) .ConfigureContainer(a =>//容器的配置顺序应该在最前面 { a.AddConsoleLogger(); }) .ConfigurePlugins(a => { //自定义插件 })) .Start(); _logger.LogInformation($"TcpServer启动成功,监听端口:{serverPort}"); } catch (Exception ex) { _logger.LogError($"TcpServer启动异常:{ex}"); throw new Exception(ex.Message); } } } }