Backend gibt nun Nachrichten an Parser weiter

This commit is contained in:
2014-04-03 13:21:54 +02:00
parent 3fe8858732
commit 3f2b03268a
2 changed files with 30 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
using System.Net.Sockets;
using System.Collections.Generic; using System.Collections.Generic;
using WorldOfPeacecraft; using WorldOfPeacecraft;
@@ -5,22 +6,28 @@ namespace Frontend
{ {
public class Backend : IBackend public class Backend : IBackend
{ {
private Receiver Rec;
private Parser Parse;
private TcpClient Client;
public Backend () public Backend ()
{ {
// Unsere Main-Methode Parse = new Parser();
Client = new TcpClient("localhost",9999);
Rec = new Receiver(Client, Parse);
} }
public List<Dragon> getDragons() public List<IPositionable> getDragons()
{ {
return null; return null;
} }
public List<Player> getPlayers() public List<IPositionable> getPlayers()
{ {
return null; return null;
} }
public Tile[][] getMap() public ITile[][] getMap()
{ {
return null; return null;
} }

View File

@@ -1,23 +1,41 @@
using System; using System;
using System.IO; using System.IO;
using System.Net.Sockets; using System.Net.Sockets;
using System.Threading;
namespace WorldOfPeacecraft namespace WorldOfPeacecraft
{ {
class Receiver class Receiver
{ {
private TcpClient Client;
private StreamReader Reader; private StreamReader Reader;
private Parser Parser; private Parser Parser;
private Thread ReceiverThread;
public Receiver (TcpClient client, Parser parser) public Receiver (TcpClient client, Parser parser)
{ {
this.Client = client;
this.Parser = parser; this.Parser = parser;
this.Reader = new StreamReader (client.GetStream ()); ReceiverThread = new Thread(new ThreadStart(this.doReceive));
ReceiverThread.Start();
} }
public string Receive () public string Receive ()
{ {
return Reader.ReadLine (); return Reader.ReadLine ();
} }
private void doReceive ()
{
this.Reader = new StreamReader (Client.GetStream ());
while (true) {
Parser.AddToBuffer(Receive());
}
}
public void Stop()
{
ReceiverThread.Abort();
}
} }
} }