Hinweis: Dies ist eine Frage zum Netzwerk, nicht zum Spielen. Ich verwende StarCraft nur als Beispiel.
Das Spiel StarCraft (nicht StarCraft 2) unterstützt das Online-Spielen. Eine Person hostet und andere Personen schließen sich an. Wenn der Host während des Spiels verlässt, kann das Spiel ohne den Host auf unbestimmte Zeit fortgesetzt werden. Wie funktioniert das?
Stellen Sie sich das folgende Szenario vor:
- Damit Benutzer Mitglied werden können, muss mein Router für die Portweiterleitung von 6112, TCP und UDP konfiguriert sein (siehe Blizzard-Support ).
- Fünf Leute machen mit. Jeder (ich eingeschlossen) ist hinter einem Fräser. Ich starte das Spiel.
- Drei Minuten nach Spielbeginn strömen ungefähr zwanzig Eiferer in meine Basis. Niemand hilft mir.
- Meine Basis ist beseitigt, also gehe ich (das Spiel gibt dir keine Wahl).
- Das Spiel wird ohne den Gastgeber fortgesetzt (die Heimmannschaft hat noch zwei Spieler).
Wie bleiben die verbleibenden fünf Clients (die keine 6112-Weiterleitung benötigten) verbunden?
Wenn ich das richtig verstehe: Wenn zwei Programme miteinander kommunizieren möchten, muss eines ein "Server" sein und auf Verbindungen an einem Port warten, während das andere ein "Client" sein muss und eine Verbindungsanforderung dazu initiieren muss Hafen. Sie können nicht einfach anfangen, Pakete aneinander zu senden (und ich weiß nicht einmal, wie sie es tun würden, wenn beide sich hinter Routern befinden).
Jemand, der ein Spiel hostet, ist ein Server, während diejenigen, die sich ihm anschließen, Clients sind. Es ist leicht zu erkennen, wie die Clients mit dem Server kommunizieren können. Was ich nicht bekomme ist: Wie beginnen die Clients miteinander zu kommunizieren, ohne den Server zu durchlaufen? Ermöglicht das Internetprotokoll einem Server, Verbindungen zwischen Clients herzustellen?
Es ist durchaus möglich, dass im Falle von StarCraft der Spielverkehr über Battle.net-Server läuft. StarCraft unterhält während des Spiels eine Verbindung zum Battle.net (für Nachrichten von Freunden usw.). Ich bezweifle jedoch, dass der Spieledatenverkehr es durchläuft. Wenn ja, warum müssen Hosts dann den Port 6112 weiterleiten?
Meine Frage ist: Kann ein Server, an den mehrere Clients angeschlossen sind, Verbindungen zwischen ihnen herstellen?
I host a 3 versus 3. Note that, for people to be able to join, my router has to be configured to port forward 6112, TCP and UDP (see Blizzard Support).
Anscheinend wird dies benötigt, um ein Spiel zu starten, damit Benutzer Sie finden können, aber nicht, um verbunden zu bleiben.