Datenaustausch

TheBohne

Aktives Mitglied
Hay ho ihr,
ich bin nun schon etwas länger an einem multiplayer Spiel dran. Stoße nun leider an einen Punkt bei dem ich mit meiner Vorgehensweise nicht mehr zufrieden bin. Problem ist folgendes. Nachdem ich den Client mit dem Server verbunden habe werden sämtliche Daten wie Spieler und Map ausgetauscht. Dies läuft über einen Port also eine Verbindung. Im weiteren Verlauf wird auch wiederum der Chatverlauf wie auch die Daten zum Updaten über den selben Port / Verbindung gesendet. Dies geschieht mittels eines Updatepaketes. Mein problem nun. Wenn ich weitere Daten hinzunehme die Ausgetauscht werden sollen wird es hier sehr schnell unübersichtlich und langsam.
Eine weitere Methode die ich mir noch überlegt hatte war, die Daten vom Chat und den Usern und so weiter jeweils über einzelne Ports / Verbidnungen zu senden. Finde ich jedoch auch nicht als zu schön da die Ports nicht immer frei sind und so kein fester Port genutzt werden kann.

Die Frage:
Nun nach einer langen Einleitung die Frage :DD.
Habt hier hierzu eine bessere Lösung... Ich kann mir nicht vorstellen das große Spiele über genannte Verfahren ihre Daten senden.
 

JavaMeister

Gesperrter Benutzer
Viel kann man hierzu nicht sagen.

Die Lösung über zwei Ports klingt plausibel.

Man kann auch einen Port designen, der die Informationen wohin man sich verbinden muss zum Spielen und Chat bereithält.

So eine Art "Nameserver".
 

TheBohne

Aktives Mitglied
Danke schon mal für die Antwort :)
Nur wenn ich jetzt einen port habe über den ich die die namen der anderen ports sende, dann weiß ich ja nicht ob diese dann auch im Router freigegeben sind.
 

TheBohne

Aktives Mitglied
An sich ist das klar da es alles über eine Leitung geht. Jedoch kann durch die Unabhängigkeit von chat und user und so weiter alles gesendet werden wenn es benötigt wird. Finde es jetzt etwas schwer zu erklären :D aber von der Verarbeitung ist das mit der Variante der Ports schneller.
 

TheBohne

Aktives Mitglied
Bei einem Port sende ich sämtliche Daten über diesen. In meinem Fall ein Updatepaket mit den neuen chat/user und map daten. Gibt es jedoch keine neue Chatnachricht ist der Teil im Updatepaket leer. Muss jedoch auch verarbeitet werden. Mit einem separaten Port würde dort nur dann gesendet und verarbeitet werden wenn eine neue Chatnachricht existiert.
 

JavaMeister

Gesperrter Benutzer
Sorry aber das must du mir genauer erklären.... Ich sehe in mehreren Ports nirgendwo einen Vorteil.

Mehrere Ports erlauben es die Anwendung später besser zu skalieren.

E.g. kann ein Server für den Chat und ein anderer Server für das Spielgeschehen konfiguriert werden.

Ich will nicht ausschließen, dass gleiche Ports dies ausschließen, aber dennoch.

@TO: Auf deine eigenen Server hast du vollen Zugriff auf die Firewall.

Die Firewall von Clienten kannst du ehh nicht beeinflussen, aber da gibt es andere Techniken (e.g. UDP Holepunching, UPnP) um dennoch eine Verbindung aufzubauen.
 

Neue Themen


Oben