using System.Text; using System.Net; using System.Net.Sockets; using backDot.Commom; namespace backDot.TheDot{ public class AppServer{ private int port = Constants.Port; private IPHostEntry? ipHost; private IPAddress? ipAddress; private IPEndPoint? ipEndPoint; public async Task RunServer(){ this.ipHost = await Dns.GetHostEntryAsync("127.0.0.1"); this.ipAddress = this.ipHost.AddressList[0]; this.ipEndPoint = new IPEndPoint(this.ipAddress, port); using Socket listener = new Socket( this.ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp ); listener.Bind(this.ipEndPoint); Console.WriteLine(@$" Server up. Listen on {this.ipAddress}:{this.port} "); listener.Listen(100); var handler = await listener.AcceptAsync(); while (true){ var buffer = new byte[1_024]; var byteContent = await handler.ReceiveAsync(buffer, SocketFlags.None); var content = Encoding.UTF8.GetString(buffer, 0, byteContent); if (content.IndexOf(Constants.EndOfMessage) > -1){ Console.WriteLine(@$" Receive Message: {content.Replace(Constants.EndOfMessage, "")} "); var messageToClient = "<|ACK|>"; var byteMessage = Encoding.UTF8.GetBytes(messageToClient); await handler.SendAsync(byteMessage, 0); Console.WriteLine($"Send: {messageToClient}"); // TODO: Remover isso e trocar a lógica para enviar comandos para o cliente. break; } } } } }