001
22.08.2002, 14:58 Uhr
Christian
C/C++ Master (Operator)
|
Hi!
Wenn du im Server per Accept() eine Verbindung aufnehmen willst, dann bekommst du als Parameter einen Socket übergeben. Dieser Socket ist dann bereits initialisiert und du kannst über diesen mit dem Client kommunizieren. So hast du die Möglichkeit ein Array oder etwas ähnliches zu erstellen, welches diese Sockets verwaltet.
Auszug aus dem EBook VC++ in 21 Tagen:
Frage: Wie behandelt eine Server-Anwendung eine größere Anzahl gleichzeitiger Client- Verbindungen?
Antwort: Bei einem Vollserver sind die Verbindungs-Sockets nicht als Klassenvariablen deklariert. Der Server verwendet statt dessen eine Art dynamischer Zuweisung von Sockets in einem Array oder einer verknüpften Liste, um Sockets für die Clients zu erzeugen, sobald Verbindungsanforderungen hereinkommen. Eine andere von Servern oftmals verwendete Lösung besteht darin, einen eigenen Thread für jede Verbindungsanforderung einzurichten. Damit kann die Anwendung eine einzige Socket-Verbindung pro Thread behandeln, was es wesentlich erleichtert, die Sockets zu verfolgen. In allen Fällen arbeiten Server-Anwendungen normalerweise nicht nur mit einer einzigen Variablen für die Verbindungs-Sockets.
Grüße -- Grüße, Christian |