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());
}
}
}