Socket Netzwerk Übertragung zwischen 4 Clients

Monacofranze

Mitglied
Hallo Zusammen,

für die Uni müssen wir in diesem Semester ein kleines Softwareprojekt erstellen. Meine Gruppe hat sich für ein Mensch-ärgere-dich-nicht Spiel entschieden, das innerhalb des lokalen Netzwerkes spielbar sein soll.
Dies soll in Java geschrieben werden, allerdings habe ich bis auf die Grundstrukturen in "Objektorientierter Programmierung 1" keine große Erfahrung. Da ich für das Netzwerk verantwortlich bin, habe ich bereits viel nachgelesen und youtube Videos angeschaut, da unser Seminarleiter aber selbst zu wenig Java Programmierung hat, wollte ich hier kurz fragen, ob ich mich nicht von Anfang an Auf dem Holzweeg befinde.

Was ich brauche:
- Das Array mit den aktuellen Spielpositionen soll nach jedem Wurf aktualisiert und an die anderen 3 Spieler gesendet werden, und von denen ausgelesen.
(nur funktionalität, grafik haben wir schon -> button mit klickevent)

Was ich plane:
- Via Sockets soll der erste Spieler die Server Rolle im lokalen Netzwerk übernehmen, die anderen die Clients.

Was mir sorgen bereitet:
- Ich finde keine "Port listener" in Java, über die ich mich verbinden kann, ansonsten Müsste ich ja die anderen über meine IP informieren

Was ich hoffe:
- Dass man in Java irgendwie den Server und den Client im Localen Netzwerk auf einem host trennen kann, um alle Spieler gleich behandeln zu können.

Was nicht relevant ist:
- Da das projekt nicht sehr umfangreich ist, ist die Fehelerbehandlung bei Netzwerkproblemen an einem Client zweitrangig

Vielleicht ist ja jemand hier, der mich über die .net.* Eigenheiten bzgl. meinen Fragen aufklären oder belehren kann.

Vielen Dank schon einmal
 
Was mir sorgen bereitet:
- Ich finde keine "Port listener" in Java, über die ich mich verbinden kann, ansonsten Müsste ich ja die anderen über meine IP informieren
Was genau erwartest Du bzw. was ist ein "Port Listener"? Und wenn es nur in einem lokalen Netzwerk funktionieren soll, dann kann man Broadcast / Multicast nutzen:

Was ich hoffe:
- Dass man in Java irgendwie den Server und den Client im Localen Netzwerk auf einem host trennen kann, um alle Spieler gleich behandeln zu können.
Wo siehst Du ein Problem? Das kann ja getrennter Code / getrennte Klassen sein. Dann hast Du einen Client und einen Server. Und beides kann eigene Threads haben und so. Multicast / Broadcast zum eigenen System wird ggf. nicht gehen, aber das würde ich auch erst einmal probieren.

Was nicht relevant ist:
- Da das projekt nicht sehr umfangreich ist, ist die Fehelerbehandlung bei Netzwerkproblemen an einem Client zweitrangig
Gewisse Minima hat man da aber. Wenn Du tcp/ip Verbindungen nutzt und nur das finden des Servers per broadcast machst, dann hast Du da etwas weniger. Machst Du alles per udp, dann wird da aber etwas benötigt, denn Pakete können immer verloren gehen.
 
Ich könnte mir vorstellen, dass das Problem auch java jms lösbar ist. Die Spieler posten Messages über ihre Spielzüge und die anderen Spieler aktualisieren ihr Spielfeld entsprechend. Die Spieler definieren ihre Reihenfolge und geben bekannt was sie gemacht haben. z.B.
Spieler "Rot" hat eingesetzt, eine 6 und eine 3 gewürfelt und Spieler "Grün" auf Position xy rausgeworfen. ...
 

Neue Themen


Zurück
Oben