Laden...

Netzwerk-Kommunikation mit mehreren Hosts

Erstellt von Pyrokar vor 14 Jahren Letzter Beitrag vor 14 Jahren 854 Views
P
Pyrokar Themenstarter:in
16 Beiträge seit 2008
vor 14 Jahren
Netzwerk-Kommunikation mit mehreren Hosts

Hallo C#ler,
mein Ziel ist es, ein kleines Spiel (ein Quartett, wie man es von früher vom Schulhof kennt, Werte vergleichen) zu programmieren, das über das Internet von mehreren Spielern gespielt werden kann.

Mein Problem ist der Ansatz für die Kommunikation zwischen den Teilnehmern.

Als erstes dachte ich an Multicast, wobei der initiierende Host eine Gruppe anlegt, zu der sich dann andere Teilnehmer verbinden können.
Jetzt stellt sich mir die Frage, wie funktioniert das Verbinden über das WAN?
Zum einen muss die Multicast-Gruppen-Adresse ja eindeutig sein und zum anderen, wie kommen die Pfade zwischen den Teilnehmern zu Stande, es gibt initial ja keine Routing-Infos?
Multicast würde mir den Vorteil bieten, dass kein trianguläres Routing nötig ist.
Allerdings müsste ich selbst für die Zuverläßigkeit sorgen.

Der zweite Ansatz wäre, dass der initiierende Host zu jedem anderen Teilnehmer eine eigene Verbindung aufbaut, die dann ja auch über TCP läufen könnte und mir somit die Zuverläßigkeit schenkt. Allerdings müsste dann jede Nachricht zuerst zum Server geschickt werden, der dann die ggf. verarbeitete Nachricht an alle anderen weiter leitet.

Ist die erste Methode überhaupt ohne Schwierigkeiten umsetzbar und spricht etwas gegen den zweiten Ansatz?
Ein weiteres Problem für mich ist, dass ich über die praktisch zu erwartende Performanz nichts sagen kann, da ich einfach zu wenig Erfahrung auf dem Gebiet habe.

M
35 Beiträge seit 2009
vor 14 Jahren

Allerdings müsste dann jede Nachricht zuerst zum Server geschickt werden, der dann die ggf. verarbeitete Nachricht an alle anderen weiter leitet.

Na und?
Quasi jeder Multiuser-Chat basiert auf diesem Prinzip (;
Genau so solltest du es auch machen.
Einer spielt die Rolle des Servers bzw ebenfalls als eigener Client.
Alle Clients verbinden sich zum Server, also dem Host-Computer, über einen vorher festgelegten Port.
Die Clients können dann Befehle/Nachrichten/Whatever an den Server schicken, und dieser kann die empfangenen Daten auswerten und eine "Antwort"/Resultat an alle Clients schicken.

Lg