using System.Net; using System.Net.Sockets; using var listener = new Socket(SocketType.Stream, ProtocolType.Tcp); listener.Bind(new IPEndPoint(IPAddress.Loopback, 9000)); Console.WriteLine($"Listening on {listener.LocalEndPoint}"); listener.Listen(); while (true) { var connection = await listener.AcceptAsync(); _ = Task.Run(async () => { var buffer = new byte[4096]; try { while (true) { int read = await connection.ReceiveAsync(buffer, SocketFlags.None); if (read == 0) break; var message = System.Text.Encoding.Default.GetString(buffer[..read]); Console.WriteLine($"Received new message: {message}"); await connection.SendAsync(buffer[..read], SocketFlags.None); } } finally { connection.Dispose(); } } ); }