Re: CAsyncSocket::DoCallBack(WPARA-M wParam, LPARAM lParam) crash
I start several threads to handle the incoming clients' connection requests,
there is an strange error occurs: when I debug the codes, I found that in
the thread, everything is OK, but there seems to be that the function "void
PASCAL CAsyncSocket::DoCallBack(WPARAM wParam, LPARAM lParam)"(start from
line 495 in "sockcore.cpp") is doing at the same time! I don't know what's
the usage of this function, but my program always failed in this
function(DoCallBack), in this part:
" pSocket = CAsyncSocket::LookupHandle((SOCKET)wParam, FALSE);
if (pSocket == NULL)
// Must be in the middle of an Accept call
pSocket = CAsyncSocket::LookupHandle(INVALID_SOCKET, FALSE);
ASSERT(pSocket != NULL);
pSocket->m_hSocket = (SOCKET)wParam;
CAsyncSocket::AttachHandle(pSocket->m_hSocket, pSocket, FALSE);
at the line: "ASSERT(pSocket != NULL);"(line 512).
I don't know what this error means, hope someone can help me.
Thanx a lot!!!
CAsyncSocket sends you notifications like OnConnect, OnReceive, etc.
This code is failing while trying to send you a notification, apparently
because the socket has not been properly created (or was created in a
A couple of common mistakes that might cause this are: Make sure you are
using a class that you derive from CAsyncSocket; make sure your thread
is a user-interface type of thread (a class derived from CWinThread) not
a worker thread, and make sure you are accessing the socket from the
same thread where you created it. Also check the return values of all
Better yet, start with a working example from one of the CAsyncSocket
sample programs in the MSDN Knowledgebase.
Scott McPhillips [VC++ MVP]