net.gobbz.tictactoe.client
Class TicTacToeClient

java.lang.Object
  extended by net.gobbz.tictactoe.TicTacToe
      extended by net.gobbz.tictactoe.client.TicTacToeClient

public class TicTacToeClient
extends TicTacToe

Stellt den TicTacToe-Client dar. Dieser schickt seinen Zug an den Server und wartet bis dieser seinerseits seinen Zug an den Client zurück schickt.
Die Methode main erhält als erstes Argument (args[0]) die IP-Adresse des TicTacToeServers übergeben.
Mit der Methode setMeinZug wird der Zug festgelet, ins Spielfeld eingetragen und dann über einen neuen ClientSocket an den Server geschickt. Nach Beendigung der Methode wird die ClientSocket nicht zerstört, sondern die Methode getGegnerZug verwendet diesen Socket, um den Zug des Gegners zu empfangen. Nachdem der Zug des Gegners empfangen wurde, wird dieser ins Spielfeld eingetragen und der ClientSocket geschlossen


Field Summary
private  java.net.Socket client
          Variable über welche der TicTacToeClient verwaltet wird.
private static int FELDGROESSE
          Die vorgegebene Feldgröße des Spielfeldes
private static java.lang.String ipAdresse
          Die IP-Adresse an welcher der TicTacToeServer läuft
private static int PORT
          Port auf welchem der Server läuft
 
Fields inherited from class net.gobbz.tictactoe.TicTacToe
SPIELER1, SPIELER2
 
Constructor Summary
TicTacToeClient(int feldgroesse)
          Parameterbehafteter Konstruktor, der das Spielfeld anlegt
 
Method Summary
 void close()
          Schließt den ClientSocket
 int getGegnerZug()
          Es wird über den bereits vorhandenen Socket auf den Zug des Servers gewartet.
static void main(java.lang.String[] args)
          Im ersten Parameter wird die IP-Adresse des Servers übergeben.
private static int readInt(java.lang.String text)
           
 int setMeinZug(int zug)
          Setzt den Zug im Spielfeld.
 
Methods inherited from class net.gobbz.tictactoe.TicTacToe
getEinerKannGewinnen, getFeldgroesse, getGewonnen, getSpielfeld, setZugSpieler1, setZugSpieler2, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

FELDGROESSE

private static final int FELDGROESSE
Die vorgegebene Feldgröße des Spielfeldes

See Also:
Constant Field Values

ipAdresse

private static java.lang.String ipAdresse
Die IP-Adresse an welcher der TicTacToeServer läuft


PORT

private static final int PORT
Port auf welchem der Server läuft

See Also:
Constant Field Values

client

private java.net.Socket client
Variable über welche der TicTacToeClient verwaltet wird. Das Objekt wird durch die Methode setMeinZug erstellt, in der Methode getGegnerZug weiter verwendet und dann geschlossen

Constructor Detail

TicTacToeClient

public TicTacToeClient(int feldgroesse)
Parameterbehafteter Konstruktor, der das Spielfeld anlegt

Parameters:
feldgroesse - des Spielfeldes
Method Detail

main

public static void main(java.lang.String[] args)
Im ersten Parameter wird die IP-Adresse des Servers übergeben. Ist dies nicht der Fall, so bricht das Programm ab

Parameters:
args - in args[0] muss die IP-Adresse des TicTacToeServers übergeben werden

readInt

private static int readInt(java.lang.String text)

close

public void close()
           throws java.io.IOException
Schließt den ClientSocket

Throws:
java.io.IOException - falls beim Schließen ein Fehler aufgetreten ist

setMeinZug

public int setMeinZug(int zug)
               throws java.io.IOException,
                      java.net.UnknownHostException
Setzt den Zug im Spielfeld. Wenn der Zug korrekt gesetzt werden konnte, dann nimmt die Methode die Verbindung mit dem Server auf und sendet den Zug. Wenn der Zug gesendet wurde, wird der ClientSocket nicht geschlossen, denn der Server analysiert den Zug und schickt seinen Zug über denselben Socket zurück zum Client

Parameters:
zug - der zu sendende Zug
Returns:
0 falls Zug erfolgreich gesetzt werden konnte
-1 falls der Zug außerhalb des Spielfeldes liegt
-2 falls der Zug bereits gesetzt wurde
-3 falls Clientsocket bereits existiert
Throws:
IOException, - UnknownHostException falls beim Erstellen des ClientSockets ein Fehler aufgetreten ist
java.io.IOException
java.net.UnknownHostException

getGegnerZug

public int getGegnerZug()
                 throws java.io.IOException
Es wird über den bereits vorhandenen Socket auf den Zug des Servers gewartet. Dabei muss der Socket existieren. Nach dem Empfangen wird der Socket geschlossen. Weiters wird der empfangene Zug ins Spielfeld eingetragen

Returns:
0 oder größer falls Zug erfolgreich geholt werden konnte
-1 falls der Zug außerhalb des Spielfeldes liegt
-2 falls der Zug bereits gesetzt wurde
-3 falls kein Socket vorhanden ist
Throws:
java.io.IOException - falls beim Empfangen ein Fehler aufgetreten ist