static void Main() { Trace.Listeners.Add(new TextWriterTraceListener(Console.Out)); Console.WriteLine("Starting server..."); try { // initialize network transport transportListener = new TransportListener(@"\\.\pipe\TestServer", typeof(PipeTransport)); //transportListener = new TransportListener("tcp://localhost:100", typeof(TcpTransport)); transportListener.Start(100); // create listener thread Thread listenerThread = new Thread(new ThreadStart(ListenerStart)); listenerThread.IsBackground = true; listenerThread.Start(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } Console.WriteLine("Hit <enter> to exit..."); Console.ReadLine(); if (transportListener != null) { try { // stop listening stopped = true; transportListener.Stop(); } catch { // it seems reasonable to ignore this error } } }