Ich versuche, einen Winsock-Server zu machen, der viele Clients akzeptiert. Um zu machen, dass ich gesagt wurde, ein Vektor von threads.So zu verwenden, das ist, was ich bin Tring diesen Fehler zu tun, aber ich habe:Vektor der Themen
Error 3 error C2064: the term does not evaluate to a function with 0 arguments C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ VC \ include \ functional 1152 1 Server
Und mein Server-Code ist wie folgt:
using namespace std;
int __cdecl NewClient(SOCKET ListenSocket, SOCKET ClientSocket, char *recvbuf, int recvbuflen, int iSendResult, int iResult)
vector<thread> thred;
int __cdecl main(void) {
//things
SOCKET ListenSocket=INVALID_SOCKET;
SOCKET ClientSocket=INVALID_SOCKET;
char recvbuf[DEFAULT_BUFLEN];
int recvbuflen = DEFAULT_BUFLEN;
int iSendResult=0;
int iResult;
thred.push_back(thread(NewClient,ListenSocket, ClientSocket, recvbuf, recvbuflen, iSendResult, iResult));
thred[thred.size()-1].detach();
}
int __cdecl NewClient(SOCKET ListenSocket, SOCKET ClientSocket, char *recvbuf, int recvbuflen, int iSendResult, int iResult){
//things
}
Ich denke, der Fehler ist, wo ich versuche, den Pushback des neuen Threads zu machen. Wird der Pushback so verwendet oder was kann ich tun?
Jede Hilfe wird geschätzt. Danke im Voraus.
cppreference.com sagt "std :: thread ist nicht CopyConstructible oder CopyAssignable, obwohl es MoveConstructible und MoveAssignable ist." –