//Aleq DWORD WINAPI WSAAsyncEmulationThreadProc(LPVOID lpParameter) { WSAAsyncEmulationParam *wsaAEP = (WSAAsyncEmulationParam *) lpParameter; u_long argp; g_bTerminate = FALSE; while (!g_bTerminate) { if (1 /* wsaAEP->socket */) { int returnval = ioctlsocket(wsaAEP->socket, FIONREAD, &argp); if (returnval == SOCKET_ERROR) { fatalbox(_T("ioctlsocket(): SOCKET_ERROR")); Sleep(5000); } else if (argp > 0) { SendMessage(hwnd, wsaAEP->Msg, (WPARAM) wsaAEP->socket, FD_READ); } } else { // socket is null fatalbox((_T("Null socket"))); debug(((_T("NULL SOCKET IN THREAD")))); Sleep(500); } // Small idle Sleep(1); } sfree(wsaAEP); return (0); }