Seite 1 von 1

Prinzip: Server + Client

Verfasst: 11.10.2015 22:22
von IronEagle
Hallo Leute,

ich denke schon seit ein paar Tagen über die korrekte Datenverarbeitung innerhalb einer Server-Client Kommunikation nach.

Ich möchte gern mit mehreren Clients auf einen Server gleichzeitig zugreifen, der dann jedem einzelnen Client seine entsprechenden Daten zurücksendet.

Wie ich es mir bisher gedacht habe:

- Wenn der Server Daten erhält, erstellt dieser einen Thread der die Daten empfängt und in einer Liste abspeichert. Danach wird der Empfangsthread beendet.
- Der Server verarbeitet im Main-Thread die Daten aus der o.g. Liste und erstellt ggf. einen Thread zum Senden von Daten an den entsprechenden Client.
- Wenn ein Client die Verbindung zum Server beendet, wird auch der zugehörige Sendethread beendet.

Ist das eine Sinnvolle Methode oder könnt Ihr mir eine bessere empfehlen?

Vielen Dank an alle die sich die Mühe machen mir zu antworten ;)

Re: Prinzip: Server + Client

Verfasst: 12.10.2015 01:01
von NicTheQuick
Das mit den Threads ist eine sehr gute Idee und bewährt. Ich würde aber den Thread pro Client so lange laufen lassen wie die Verbindung auch besteht. Die Kommunikation zwischen den Threads muss man dann mit entsprechenden Datenstrukturen machen. Siehe auch Mutex, Semaphore und Co.

Re: Prinzip: Server + Client

Verfasst: 15.10.2015 11:43
von IronEagle
Erstmal vielen Dank für deine schnelle Antwort.

Wenn man jetzt allerdings einen Gameserver realisieren möchte, also wo permanent Daten zwischen Clients und Server ausgetauscht werden, ist dann ein Empfangs-Thread sinnvoll oder geht man dann den Weg über einzelne Empfangs-Threads für jeden Client? (Wenn das überhaupt möglich ist)

Re: Prinzip: Server + Client

Verfasst: 15.10.2015 13:34
von TroaX
Du benötigst dafür immer einen zentralen Thread, der die Verbindungen entgegennimmt. Danach lässt man sich die Client-Identifikation/Verbindungs-Identifikation geben und übergibt diese an die einzelnen Threads. Die Threads übernehmen dann die Kommunikation mit dem Client.

Dein Server soll ja für jeden Spieler unter gleicher IP und Port erreichbar sein. Dazu gibt es nur einen Listener.

Re: Prinzip: Server + Client

Verfasst: 15.10.2015 14:05
von IronEagle
OK das habe ich mir auch so gedacht :) Danke für Eure Antworten. :bounce: