TServerSocket - Wie mehrere Clientverbindungen verwalten? (Tipps ersucht)
-
Hi,
kann mir jemand einen Tipp geben wie man die verbundenen Clients verwalten kann?
Angenommen es verbinden sich z.b. 3 Clients nacheinander zum Server. Diese können dann via ServerSocket1->Socket->Connections[ x ] Daten gesendet werden.
Mit einer simplen Schleife kann man nun via ServerSocket1->ActiveConnections auslesen wieviele Clients momentan noch verbunden verbunden sind.
2] adressierbar sondern über Connections[1].Deshalb habe ich mir überlegt, den Socket-Handle in einer Struktur zu speichern, dazu eine Hilfsfunktion die die Socket->Connections[i]->SocketHandle via Schleife durchläuft und den dann als Rückgabewert den Schleifenzähler enthält.
Im Prinzip nach folgender Methode:
int TMyForm::GetSocketId(int socketHandle) { int slot = 0; int sock = ServerSocket1->Socket->ActiveConnections; if(sock == 0) return 0; for(int i = 0; i <= sock; i++) { if (ServerSocket1->Socket->Connections[0]->SocketHandle == socketHandle) slot = i; break; } return slot; }
Ich hoffe, ihr versteht was ich meine! Für alle Tipps im voraus schon mal danke!
-
Hallo
Die Idee halte ich schon mal für sinnvoll. Allerdings kannst du statt dem SocketHandle gleich den Zeiger auf die TCustomWinSocket-Instanz als "Anker" nehmen. Dann brauchst du auch nicht nach der Instanz zu suchen.
bis bald
akari
-
Gute Idee mit der TCustomWinSocket Instanz, darauf bin ich nicht gekommen. Danke!
-
Also das mit TWinSocket funktioniert super!