# Datenaustausch



## TheBohne (13. Jun 2014)

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 D.
Habt hier hierzu eine bessere Lösung... Ich kann mir nicht vorstellen das große Spiele über genannte Verfahren ihre Daten senden.


----------



## JavaMeister (14. Jun 2014)

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 (14. Jun 2014)

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.


----------



## JavaMeister (14. Jun 2014)

Als Programmierer ist dir das egal.


----------



## TheBohne (14. Jun 2014)

Bis zu dem Punkt wo ich den Server betreiben will


----------



## Thallius (14. Jun 2014)

Du glaubst jetzt aber nicht, das eine Verbindung über mehrere Ports schneller ist als über einen oder?

Gruß

Claus


----------



## TheBohne (14. Jun 2014)

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  aber von der Verarbeitung ist das mit der Variante der Ports schneller.


----------



## Thallius (14. Jun 2014)

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

Claus


----------



## TheBohne (14. Jun 2014)

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 (14. Jun 2014)

Thallius hat gesagt.:


> 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.


----------

