using System; using System.IO; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; /// /// Summary description for Class1. /// /// class ClientHandler { private TcpClient user; public ClientHandler(TcpClient client) { user = client; } public void Run() { NetworkStream writer = user.GetStream(); Console.WriteLine("made writer"); StreamReader reader = new StreamReader(user.GetStream()); Console.WriteLine("made reader"); string data; while(true) { data = reader.ReadLine(); if(data.IndexOf("quit") > -1) break; Console.WriteLine("Received message: " + data); data += "\r\n"; byte [] sendbytes = Encoding.ASCII.GetBytes(data); Console.Write("Sending message: " + Encoding.ASCII.GetString(sendbytes)); writer.Write(sendbytes,0,sendbytes.Length); } user.Close(); } } class TCPListener { /// /// The main entry point for the application. /// static void Main(string[] args) { try { TcpListener listener = new TcpListener(8080); listener.Start(); Console.WriteLine("Listener Started"); Console.WriteLine("Waiting for connections ..."); while(true) { TcpClient tc = listener.AcceptTcpClient(); ClientHandler handler = new ClientHandler(tc); ThreadStart ts = new ThreadStart(handler.Run); Thread clientThread = new Thread(ts); clientThread.Start(); } listener.Stop(); }//end try catch (Exception e) { Console.WriteLine(e.ToString()); } } }