de.fhwiesbaden.jgamp001.thello.networking
Class Netzwerkspieler

java.lang.Object
  extended by java.util.Observable
      extended by de.fhwiesbaden.jgamp001.thello.networking.Netzwerkspieler
All Implemented Interfaces:
java.lang.Runnable

public class Netzwerkspieler
extends java.util.Observable
implements java.lang.Runnable

Die Netzwerkkommunikationsschnittstelle (schönes Wort) Netzwerkspieler erlaubt es, unter Einhaltung eines vereinbarten Protokolls, Daten im Netzwerk untereinander auszutauschen. Sie ist Observable. FlexibleThelloControl und Andere können sie auf neue Daten abhorchen. Sie ist Runnable. Es wird ein separater Thread bereitgestellt, um auf eingehende Objekte im Stream zu warten. Sie ist 'Singleton'. Über den gesamten Lebenszyklus des Prozesses gibt es nur eine Instanz dieser Klasse. Dies wurde mit der Absicht implementiert, Störungen zu vermeiden, wenn öfter als 1x im Netzwerk hintereinander gespielt werden soll. Das passende Protokoll, sowie die im Netzwerkverkehr erlaubten Protokolle sind eine Gemeinschaftsarbeit von Sebastian Flothow und mir. Eine vollständige Kompatibiltät unserer Spiele ist angestrebt und sollte bis zum Abgabetermin erreicht worden sein.


Field Summary
 java.net.Socket socke
           
 java.lang.Thread t
           
 
Method Summary
 void deinitListener()
           
 java.lang.Boolean getLastReceivedBoolean()
           
 SpielInformation getLastReceivedInfo()
           
 NetworkMove getLastReceivedMove()
           
static Netzwerkspieler getNetzwerkspieler()
           
 java.io.ObjectInputStream getOIS()
           
 java.io.ObjectOutputStream getOOS()
           
 java.net.Socket getSocket()
           
 void initListener()
           
 void reset()
           
 void run()
           
 boolean send(java.lang.Boolean payload)
           
 boolean send(NetworkMove payload)
           
 boolean send(SpielInformation payload)
           
 void setSocket(java.net.Socket socke)
           
 void setSocket(java.lang.String ipAdress, java.lang.Integer port)
           
 void setStreams()
           
 java.lang.String toString()
           
 void unsetSocket()
           
 void unsetStreams()
           
 
Methods inherited from class java.util.Observable
addObserver, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

socke

public java.net.Socket socke

t

public java.lang.Thread t
Method Detail

getNetzwerkspieler

public static Netzwerkspieler getNetzwerkspieler()

getLastReceivedMove

public NetworkMove getLastReceivedMove()

getLastReceivedInfo

public SpielInformation getLastReceivedInfo()

getLastReceivedBoolean

public java.lang.Boolean getLastReceivedBoolean()

setSocket

public void setSocket(java.net.Socket socke)

setSocket

public void setSocket(java.lang.String ipAdress,
                      java.lang.Integer port)
               throws java.net.UnknownHostException,
                      java.io.IOException
Throws:
java.net.UnknownHostException
java.io.IOException

unsetSocket

public void unsetSocket()
                 throws java.io.IOException
Throws:
java.io.IOException

setStreams

public void setStreams()
                throws java.io.IOException
Throws:
java.io.IOException

unsetStreams

public void unsetStreams()
                  throws java.io.IOException
Throws:
java.io.IOException

deinitListener

public void deinitListener()

reset

public void reset()

initListener

public void initListener()
                  throws java.lang.Exception
Throws:
java.lang.Exception

run

public void run()
Specified by:
run in interface java.lang.Runnable

send

public boolean send(NetworkMove payload)
             throws java.io.IOException
Throws:
java.io.IOException

send

public boolean send(SpielInformation payload)
             throws java.io.IOException
Throws:
java.io.IOException

send

public boolean send(java.lang.Boolean payload)
             throws java.io.IOException
Throws:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getOIS

public java.io.ObjectInputStream getOIS()

getOOS

public java.io.ObjectOutputStream getOOS()

getSocket

public java.net.Socket getSocket()