# Client/Server Kommunikation bei einem Spiel



## iSynthesis (23. Jun 2016)

Ich habe mich in letzter Zeit ein wenig der Client- und Server Programmierung gewidmet, jedoch verstehe ich einige Dinge noch nicht. Ich möchte einen Schiffeversenken Client programmieren, mit dem man, durch Knopfdruck einen Server erstellt und von einem anderen Client verbinden kann. Dies funktioniert so weit, jedoch weis ich nicht wie ich die Kommunikation implementieren soll. In der Theorie habe ich mir überlegt, dass am Anfang des Spiels die Positionen der Gegnerischen Schiffe ausgetauscht werden und dann bei jedem Zug eine int Zahl versendet wird, welche die Position des "Schusses" angibt. Wie mache ich das am besten?


----------



## VfL_Freak (23. Jun 2016)

iSynthesis hat gesagt.:


> Client [...], mit dem man, durch Knopfdruck einen Server erstellt und von einem anderen Client verbinden kann. Dies funktioniert so weit


Wenn Du Dich verbinden kannst, dann kannst Du doch über diese Verbindung auch senden ... 

Poste mal Details ...


----------



## iSynthesis (23. Jun 2016)

VfL_Freak hat gesagt.:


> Wenn Du Dich verbinden kannst, dann kannst Du doch über diese Verbindung auch senden ...
> 
> Poste mal Details ...


Ich verstehe die output/input Methoden aber noch nicht richtig :-/. Was müsste ich für eine Methode aufrufen, wenn bspw. Feld 1 getroffen wurde und was ist der Unterschied zwischen ObjectOutputStream und OutputStream bzw. den entsprechenden Input varianten? Wann sollte man was benutzen?

```
try {
      serversocket = new ServerSocket(port);
      connection = serversocket.accept();
}
```
Und der Client

```
try {
      Socket socket = new Socket(IP, Port);
      ...}
```
Bei den Streams hänge ich eben irgendwie komplett.


----------



## VfL_Freak (23. Jun 2016)

ist hier eigentlich gut erklärt:
http://www.java-tutorial.org/outputstream.html
http://openbook.rheinwerk-verlag.de...17_010.htm#mjfbe8cb1105d7dfaf6adbc23f31c81b93



iSynthesis hat gesagt.:


> ObjectOutputStream und OutputStream


"OutputStream" ist 'nur' die Oberklasse


----------



## iSynthesis (23. Jun 2016)

VfL_Freak hat gesagt.:


> ist hier eigentlich gut erklärt:
> http://www.java-tutorial.org/outputstream.html
> http://openbook.rheinwerk-verlag.de...17_010.htm#mjfbe8cb1105d7dfaf6adbc23f31c81b93
> 
> ...


Allerdings wird dort nicht aufgeführt, wie man dies nun in die Server-Client Kommunikation einbindet. Funktionieren die input/outputstream methoden ähnlich zu der Scanner Klasse? Also, wenn man den Server Code hat, wartet dieser auf input vom client und führt den code dann weiter fort?


----------

