diff --git a/src/Backend.cs b/src/Backend.cs index 18cee53..f6116ff 100644 --- a/src/Backend.cs +++ b/src/Backend.cs @@ -1,3 +1,4 @@ +using System.Net.Sockets; using System.Collections.Generic; using WorldOfPeacecraft; @@ -5,22 +6,28 @@ namespace Frontend { public class Backend : IBackend { + private Receiver Rec; + private Parser Parse; + private TcpClient Client; + public Backend () { - // Unsere Main-Methode + Parse = new Parser(); + Client = new TcpClient("localhost",9999); + Rec = new Receiver(Client, Parse); } - public List getDragons() + public List getDragons() { return null; } - public List getPlayers() + public List getPlayers() { return null; } - public Tile[][] getMap() + public ITile[][] getMap() { return null; } diff --git a/src/Receiver.cs b/src/Receiver.cs index e460d49..9e0b5e9 100644 --- a/src/Receiver.cs +++ b/src/Receiver.cs @@ -1,23 +1,41 @@ using System; using System.IO; using System.Net.Sockets; +using System.Threading; namespace WorldOfPeacecraft { class Receiver { + private TcpClient Client; private StreamReader Reader; private Parser Parser; + private Thread ReceiverThread; public Receiver (TcpClient client, Parser parser) { + this.Client = client; this.Parser = parser; - this.Reader = new StreamReader (client.GetStream ()); + ReceiverThread = new Thread(new ThreadStart(this.doReceive)); + ReceiverThread.Start(); } public string Receive () { return Reader.ReadLine (); } + + private void doReceive () + { + this.Reader = new StreamReader (Client.GetStream ()); + while (true) { + Parser.AddToBuffer(Receive()); + } + } + + public void Stop() + { + ReceiverThread.Abort(); + } } }