Abfragen welche Verbindung zu TServerSocket getrennt wurde



  • Ich habe einen Server an dem mehrere Clienten hängen. Jetzt trennt sich einer von fünf Clienten. Danach wird beim Server das Ereignis ServerSocketClientDisconnect aufgerufen, wie kann ich nun herausfinden, welcher Client die Verbindung getrennt hat, also welchen Index "Connections[]" vorher hatte?



  • Guck dir mal die Eigenschaft "SocketHandle" an



  • Sorry, aber so ganz versteh ich diese Eigenschaft nicht. Wenn ich mir nen Rückgabewert liefern lasse, dann ist das irgendeine große Zahl im tausernder Bereich. Kannst du mir vielleicht genauer erklären, wie ich mit SocketHandle auf den Index für Socket->Connections[] schließen kann?

    THX



  • Das SocketHandle ist wie eine IP-Adresse. Einmalig und eindeutig. In dem Connections[]-Array kannst du dann per

    for(int i=0; i<Server->Socket->ActiveConnections; i++)
    {
        if(ServerSocket->Socket->Connections[i]->SocketHandle == Socket->SocketHandle)
        {
            //mach was mit dem ergebnis
        }
    }
    

    abfragen oder ermitteln welcher Client sich getrennt hat. Jetzt stellt sich mir aber die Frage was du eigentilch vor hast?!



  • Danke, das funktioniert.
    Jeder Client hatte einen Nickname, die alle beim Server in einem vector gespeichert waren, jetzt kann ich beim disconnecten den Nick von der Liste wieder löschen.


Anmelden zum Antworten