http异步请求997问题?
以下是部分代码,当异步请求返回997时 就等待i/o处理完毕 在执行 可是为什么会无限等待下去?这样程序不就死掉了 没有任何反应
如果自己定义超时的话 就总是超时!
if (!(hOpen = InternetOpen(L"Mozilla/4.0.(compatible;.MSIE.4.01;.Windows.CE;.PPC;.240x320)", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, INTERNET_FLAG_ASYNC)))
{
hr = GetLastError();
printf("%d", hr);
goto Error;
}
if (InternetSetStatusCallback(hOpen,(INTERNET_STATUS_CALLBACK)&Callback) == INTERNET_INVALID_STATUS_CALLBACK)
{
goto Error;
}
//ResetEvent(this->hEvent);
if (!(hConnect = InternetConnect(hOpen, IP,PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, (DWORD) this)))
{
hr = GetLastError();
if (hr != ERROR_IO_PENDING)
{
printf("%d", hr);
goto Error;
}
else
{
WaitForSingleObject(hConnectedEvent, INFINITE);
}
}
//ResetEvent(this->hEvent);
// TCHAR objectName[64];
if (!(hRequest = HttpOpenRequest (hConnect, L"POST",URL , NULL, NULL, NULL, INTERNET_FLAG_NO_CACHE_WRITE, (DWORD) this)))
{
if (GetLastError() != ERROR_IO_PENDING)
{
goto Error;
}
WaitForSingleObject(hRequestCompleteEvent, INFINITE);
}