Implementation umgebaut, sodass sie besser der Aufgabenstellung entspricht
This commit is contained in:
@@ -3,15 +3,49 @@ 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 ()
|
||||
{
|
||||
Terminal terminal = new Terminal ();
|
||||
TcpClient client = new TcpClient ("localhost", 9999);
|
||||
Receiver receiver = new Receiver (client.GetStream (), terminal);
|
||||
Sender sender = new Sender (client.GetStream (), terminal);
|
||||
Thread receiverThread = new Thread (new ThreadStart (receiver.Receive));
|
||||
receiverThread.Start ();
|
||||
sender.Send ();
|
||||
client.Close ();
|
||||
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();
|
||||
}
|
||||
|
||||
public void doSend ()
|
||||
{
|
||||
while (true) {
|
||||
Send.Send(Term.ReadLine());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user