Beispiel #1
0
void* doTask(void* q){
    while (true) {
        int sock = taskList.pop();
        while(true){
        
        
            cout << "message recieved from socket " << sock << endl << endl << endl;
            vector<char>recvMsg;
            int sizeRecvMessage = 1024;
            long len = sizeRecvMessage;
            while(len == 1024){
                char recvMessage[sizeRecvMessage];
                len = recv(sock, recvMessage, sizeRecvMessage, 0);
                recvMsg.insert(recvMsg.end(), recvMessage, recvMessage+len);
                if(len == -1){
                    cerr << "ERROR: failed on receiving" << endl;
                    exit(1);
                }
            }
        
            if (recvMsg.empty()) {
                break;
            }
            cout << &(recvMsg[0]) << endl;
            handleMessage(sock, recvMsg);
        }
        cout << "socket closed: " << sock << endl;
        conts.logoutOfEveryUserWithSock(sock);
        close(sock);
    }
    return NULL;
}