using System.Net.Sockets; using System.Threading; public class Program { private Terminal Term; private Receiver Rec; private Sender Send; private Thread SenderThread; private Thread ReceiverThread; public static void Main () { Program program = new Program(); program.StartThreads(); } public Program () { Term = new Terminal (); TcpClient client = new TcpClient ("localhost", 9999); Rec = new Receiver (client); Send = new Sender (client); } public void StartThreads () { ReceiverThread = new Thread(new ThreadStart(this.doReceive)); ReceiverThread.Start (); SenderThread = new Thread(new ThreadStart(this.doSend)); SenderThread.Start(); } public void doReceive () { string line; while ((line = Rec.Receive()) != null) { Term.PrintLine(line); } SenderThread.Abort(); Term.Close(); } public void doSend () { while (true) { Send.Send(Term.ReadLine()); } } }