Problem in making multithreading Winsock Server
-
Hello, I am changing my server to support multithreading. However, I have problem. This is how the server main loop is
//###################################################################### // Main Server loop CSocket clientS; while (run) { Print_Log("A loop... : mainServer->Start()"); cs.Accept(clientS); hSThread = CreateThread(NULL, 0, ServiceThread, &clientS, 0, &threadId); } // end while...loop //######################################################################
Here is my thread call back function:DWORD WINAPI ServiceThread(LPVOID p) { CSocket* clientS = ((CSocket*)p); int re; char r[6]; do { re = clientS->Receive(r, 6); if (re != 0) cout << r << endl; } while (re != 0); clientS->Close(); return 0; } // end of function ServiceThread()
I get a error message when the client send me somehing, which is "Debug Assertion Fail". The server can actually receive the message, but when the thread is going to close. The error message come out. I didn't know where my code have make the mistake. Can anyone help me? Thanks! Nachi X|