Hallo Lieber Forum,
vorerst muss ich erklären, dass ich vorher nie Server-Client Anwendungen programmiert habe.
Ich habe mir viele Sachen durchgelesen und habe mir ein wenig Wissen angeeignet.
Vorab erstmal:
Im Rahmen unseres Projektes auf der Hochschule sollen wir das Brettspiel Monopoly Programmieren. Zuerst habe ich die ganzen Funktionalitäten gemacht. Hierbei werden die Spieler, Felder, Gemeinschaftskarten, Ereigniskarten vorbereitet und die Daten dazu sind in seperaten .properties Dateien abgelegt. Die GUI funktioniert auch einigermaßen.
Mein Problem Server-Client:
Ich verstehe das ganze so, dass ein Socket abgelegt wird und alle schreiben über einen PrintWriter in dem Socket rein?
Sprich da findet eine ständige Unterhaltung statt?
Daher habe ich mir gedacht programmiere ich das so wie ich es verstanden habe und bin schon an einer Zwickmühle.
Funktionsweise (C steht für Client; S für Server):
C schreibt "newplayer"
S liest OutputStream, fängt "newplayer" ab und schreibt "id;0"
S schreibt "0;name" (Die 0 steht hierbei für sein ID, damit sich nicht alle Clients angesprochen fühlen);
C schreibt "newplayer;name;[eingegebener Name]"
und so weiter
Mein Problem besteht jetzt darin, dass wenn sich ein neuer Client anmeldet und den OutputStream lesen will, liest er es irgendwie von Anfang an und bekommt, auch somit den id=0.
Ich recherchiere schon seit heute morgen aber finde irgendwie nichts konkretes zu der Thema, wie man den OutputStream leeren könnte... Weil wenn ich den OutputStream vom Server leeren könnte, würde der neue nicht erst die ganzen Sachen im Outputstream lesen, was eigentlich für den Client zuvor gedacht war und würde auch sein richtigen ID bekommen...
Nächste Frage:
Ist das wie ich ein Server-Client realisiere richtig, mit so viel befehlen und verschachtelten IF-Anweisungen? Oder ist das völliger Bullshit und komplizierter Kram, was ich da versuche anzustellen? Ich bin für jede Hilfe dankbar.
vorerst muss ich erklären, dass ich vorher nie Server-Client Anwendungen programmiert habe.
Ich habe mir viele Sachen durchgelesen und habe mir ein wenig Wissen angeeignet.
Vorab erstmal:
Im Rahmen unseres Projektes auf der Hochschule sollen wir das Brettspiel Monopoly Programmieren. Zuerst habe ich die ganzen Funktionalitäten gemacht. Hierbei werden die Spieler, Felder, Gemeinschaftskarten, Ereigniskarten vorbereitet und die Daten dazu sind in seperaten .properties Dateien abgelegt. Die GUI funktioniert auch einigermaßen.
Mein Problem Server-Client:
Ich verstehe das ganze so, dass ein Socket abgelegt wird und alle schreiben über einen PrintWriter in dem Socket rein?
Sprich da findet eine ständige Unterhaltung statt?
Daher habe ich mir gedacht programmiere ich das so wie ich es verstanden habe und bin schon an einer Zwickmühle.
Funktionsweise (C steht für Client; S für Server):
C schreibt "newplayer"
S liest OutputStream, fängt "newplayer" ab und schreibt "id;0"
S schreibt "0;name" (Die 0 steht hierbei für sein ID, damit sich nicht alle Clients angesprochen fühlen);
C schreibt "newplayer;name;[eingegebener Name]"
und so weiter
Mein Problem besteht jetzt darin, dass wenn sich ein neuer Client anmeldet und den OutputStream lesen will, liest er es irgendwie von Anfang an und bekommt, auch somit den id=0.
Ich recherchiere schon seit heute morgen aber finde irgendwie nichts konkretes zu der Thema, wie man den OutputStream leeren könnte... Weil wenn ich den OutputStream vom Server leeren könnte, würde der neue nicht erst die ganzen Sachen im Outputstream lesen, was eigentlich für den Client zuvor gedacht war und würde auch sein richtigen ID bekommen...
Nächste Frage:
Ist das wie ich ein Server-Client realisiere richtig, mit so viel befehlen und verschachtelten IF-Anweisungen? Oder ist das völliger Bullshit und komplizierter Kram, was ich da versuche anzustellen? Ich bin für jede Hilfe dankbar.