Winsock - multithreaded server



  • Also ich habe mir jetzt eine Funktion gebastelt:

    // function to accept a client
    int AcceptClient()
    {
        // private
        struct sockaddr_in cliAddr;
        int cli_size;
    
        // get size
        cli_size = sizeof(cliAddr);
    
        cliSocket = accept(srvSocket, (struct sockaddr *)&cliAddr, &cli_size);
        if(cliSocket != -1){
            utilLog("client accepted", 1);
    
            // start new thread for new client
            DWORD nThreadID;
            CreateThread(0, 0, HandleClient, (void*)cliSocket, 0, &nThreadID);
        }   
        return 0;
    }
    

    Diese wird aufgerufen wenn ich eine FD_ACCEPT bekomme.
    Klappt ja wunderbar. Aber die Verbinding wird ja gehalten. Wenn der Client mir aber jetzt etwas schickt bekomme ich ja FD_READ. Nur weis ich ja jetzt nicht von welchem Client diese Daten kommen. Wie soll ich den nach dem auswerten der Daten diese an den "unbekannten" Client senden??

    danke!
    cu para
    😃



  • Auszug aus dem MSDN:

    When one of the nominated network events occurs on the specified socket s, the application's window hWnd receives message wMsg. The wParam parameter identifies the socket on which a network event has occurred.



  • dankesehr 🙂
    danke!
    cu para
    😃


Anmelden zum Antworten