# Client Client Übertragung



## Apple_Mac (27. Nov 2016)

Moin,
ich bin in der Netzwerkprogrammierung ein kompletter Anfänger deswegen bitte ich euch keine Fachwörter zu nutzen und einfach zu erklären

Nun zu meinem Problem:
Ich programmiere gerade das Spiel Schiffeversenken. Die Schiffe werden alle in eine MySQL-Datenbank eingetragen. Das funktioniert nun soweit. Aber jetzt bin ich angefangen den Ablauf des Spiels zu programmieren und jetzt muss ich den Gegenspieler ja irgendwie mitteilen, ob er jetzt dran ist oder nicht. Gibt es irgendeine einfache Möglichkeit. Es würde ja reichen, wenn eine zahl übermittelt wird.
Erstmal würde mit reichen, wenn das ganze im LAN funktioniert. Außerdem wäre es gut wenn ihr eine Lösung habt, wo ich keinen Server brauche, den ich dazwischen schalten muss.

MFG
Simon


----------



## Thallius (27. Nov 2016)

Wenn du eine mysql Datenbank hast, dann hast du doch auch einen Server. Oder wie soll der gegenüber sonst auf die DB zugreifen?


----------



## Apple_Mac (27. Nov 2016)

Der Zugriff auf die mysql datenbank läuft über JDBC.  Auf die Datenbank kann theoretisch jeder zugreifen. Da ich eine Portfreigabe gemacht hab.


----------



## Thallius (27. Nov 2016)

Dann mach doch in die DB eine Tabelle Mit einer Spalte für die Anzahl der Züge und wenn der Wert gerade ist, dann ist Client A dran und wenn er ungerade ist, dann Client B . Und immer wenn ein neuer Zug gemacht wird, dann erhöhst du den Wert. Die Clients können dann 1x pro Sekunde diesen Wert abfragen und entsprechend reagieren.

Gruß

Claus


----------



## Apple_Mac (28. Nov 2016)

Könntest du mal den Code zeigen für eine solche Abfrage. Also das abfragen aus der DB bekomm ich auch hin. Nur wie ich so eine Dauerschleife bekomme, die alle 1s den Wert überprüft.


----------



## Kababär (28. Nov 2016)

Bspw so:

```
try {
    Thread.sleep(1000); //1 Sec, 1000ms
} catch(InterruptedException ex) {
    Thread.currentThread().interrupt();
}
```

Oder TimeUnit gibt es auch.. aber damit kenne ich mich nicht aus.


----------



## Apple_Mac (28. Nov 2016)

Okay Probier ich nachher mal aus. Muss ich dafür irgendetwas implementieren oder importieren?


----------



## Joose (28. Nov 2016)

Also Spiel über die Datenbank abzuwickeln ist eine schlechte Variante. Schreib doch lieber einen Server welcher das Spiel "leitet" und die Infos zwischen den Clients austauscht.


----------



## Apple_Mac (28. Nov 2016)

Das Problem ist dabei ich kenn mich mit sockets garnicht aus. Kenn nur den Namen.


----------



## Joose (28. Nov 2016)

Dann wäre es doch der perfekte Zeitpunkt sich näher damit zu beschäftigen


----------



## Kababär (28. Nov 2016)

Ich glaube das zu importierende "Paket" lautet java.concurrent.util, bin mir aber gerade unsicher. Ist schon beim jdk dabei.


----------



## Apple_Mac (28. Nov 2016)

Wie informiert man sich am besten darüber?


----------



## Joose (28. Nov 2016)

Indem du ein Buch zu diesem Thema liest oder einfach in Google nach entsprechenden Tutorials und ähnlichem suchst ....
https://www.google.at/search?q=java...firefox-b&gfe_rd=cr&ei=oRA8WMnVDZHc8Ae_q5vAAQ


----------

