de.fhwiesbaden.jgamp001.thello.networking
Class Netzwerkspieler
java.lang.Object
java.util.Observable
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
|
| 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 |
socke
public java.net.Socket socke
t
public java.lang.Thread t
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()