[ winsock ] - mehrere Clients
-
Wie kann ich mehrere Client verwalten, wenn ich einen Server programmiere?
Muss ich für jeden Server einen eigenen Socket anlegen? Sollte ich zum Beispiel eine struct anlegen in der ip, socket, und ein index gespeichert ist??Wie macht man das normal?? Hat jemand ein Beispiel??
Danke!
cu para
-
nein
-
OK! Hat vielleicht jemand noch eine etwas bessere und ausführlichere Antwort!?
-
AFAIK erstellt Apache für jeden Client einen eigenen Thread.
Also ein Hauptthread, der Verbindungen entgegennimmt, und pro Verbindung ein Thread; diese werden dynamisch erzeugt und beendet.
-
Ich weiss es nicht ganz genau. Ich bin selbst kurz vor dieser Problematik. Aber die Lösung deines Problems ist auf jedenfall die Funktion Select (). Damit musst du einen timeout für jeden Client festlegen und im server eine Liste mit allen möglichen Servern anlegen, sodass der nach dem Timeout zum nächsten Client in der Liste springt und wenn der unten angekommen ist oben wieder anfängt. Allerdings musst du dann das timeout gut wählen. Wählst du es zu groß, dann gehen logischerweise die Daten die von Clients gesendet werden, die grade nicht den Fokus haben, verloren, wählst du es zu klein, sodass die Daten nicht mehr gesendet werden können hast du auch nix davon dann passiert nämlich gar nix mehr. Wenn du eine qualifiziertere Antwort bekommst dann sag mir doch bitte bescheid wäre dir sehr verbunden.