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