hSession = InternetOpen(……);
unsigned long iTimeOut = 2000;
InternetSetOption(hSession,INTERNET_OPTION_CONNECT_TIMEOUT,&iTimeOut,sizeof(unsigned long));
hFile = InternetOpenUrl(……);上面这样设置超时没作用,当服务器关机没响应时,函数总要等待InternetOpenUrl(……)函数20秒左右?
如何解决??

解决方案 »

  1.   

    hSession = InternetOpen(……);
    最后一个参数用INTERNET_FLAG_ASYNC
      

  2.   

    最后一个参数我是用的INTERNET_FLAG_ASYNC
      

  3.   

    你还需要调用InternetSetStatusCallback
    typedef VOID (CALLBACK *) INTERNET_STATUS_CALLBACK(
        HINTERNET hInternet,        // Indicates session
        DWORD dwContext,               // App-defined value (identifies the operation)
        DWORD dwInternetStatus,               // Indicates operation being performed
        LPVOID lpvStatusInformation,          // Depends on value dwInternetStatus
        DWORD dwStatusInformationLength);     // Length of data pointed to by
                                              // lpvStatusInformation
     ... INTERNET_STATUS_CALLBACK InternetSetStatusCallback(
        HINTERNET hInternet,                            // Indicates session
        INTERNET_STATUS_CALLBACK lpfnInternetCallback);
      

  4.   

    http://www.softec.org.cn/readnews.asp?tid=4233
    http://www.codeproject.com/internet/asyncwininet.asp
    这里有两篇文章介绍异步调用WinInet API的方法
    鄙视微软