So schreibe ich habe einige Client-Server-Code Multi-Threading verwendet und ich schrieb diese Funktion:Begriff nicht ausgewertet zu einer Funktion 1 Argument nehmen
void TriviaServer::accept()
{
// this accepts the client and create a specific socket from server to this client
SOCKET client_socket = ::accept(_socket, NULL, NULL);
if (client_socket == INVALID_SOCKET)
throw std::exception(__FUNCTION__);
// make a thread that will handle the new client
std::thread t(&TriviaServer::clientHandler, this, client_socket);
t.detach();
}
und Visual Studio sagt, das Problem ist:
Fehler C2064: Ausdruck ergibt keine Funktion unter 1 Argumente
ich weiß, eine Frage mit dem gleichen Namen gibt es ich habe, aber ich konnte das Sol sehen in der Antwort.
Die Funktion Handelte-Client wird durch die folgende Zeile erklärt:
void clientHandler(SOCKET);
Der Fehler trat auf, nachdem ich die Zeile geändert:
iststd::thread t(&TriviaServer::clientHandler, this, client_socket);
Diese Funktion unendlich genannt wird, während jedes Mal neuen Client akzeptieren und ihn mit dem clientHandler zu behandeln, diese Funktionen befinden sich in der Klasse namens TriviaServer.
@Carcigenicate Ich habe diesen Beitrag gesehen, von dem du sprichst, und es gibt keine Antwort auf meine Frage, wie ich oben gesagt habe. –
@Carcigenicate Das sieht nicht richtig aus. – NathanOliver
@TalSokolinsky Sind Sie sicher, dass das die einzige Zeile ist, die Sie geändert haben? – Rakete1111