internal static void Main(string[] args) { const byte maxValue = byte.MaxValue; var echoServer = new EchoServer(Dns.GetHostEntry("localHost").AddressList[0]); TcpListener server = echoServer.Server; server.Start(); while (true) { TcpClient client = server.AcceptTcpClient(); byte[] buffer = new byte[maxValue]; NetworkStream dataStream = client.GetStream(); dataStream.Read(buffer, 0, maxValue); client.Client.Send(buffer); Console.WriteLine(Encoding.ASCII.GetString(buffer, 0, maxValue)); } }
static async Task <int> Main(string[] args) { Console.WriteLine("EchoServer"); try { using (var source = new CancellationTokenSource()) { using (var echoServer = new EchoServer()) { echoServer.Start(source.Token); using (var publisher = new NetworkServicePublisher("EchoServer", "_echo._tcp", (ushort)echoServer.Port)) { publisher.Start(); var running = true; Console.CancelKeyPress += async(s, e) => { await echoServer.StopAsync(); await publisher.StopAsync(); running = false; Console.WriteLine("Goodbye!"); }; while (running) { await Task.Delay(1000, source.Token); } } } } } catch (Exception e) { Console.WriteLine(e); return(-1); } return(0); }