Bei folgender Funktion ein Timeout einstellen, wie?



  • HI!
    Folgende Funktion:

    BOOL ExistsPage(char *Url)
    {
        //Url[strlen(Url)-1] = '\0';
        //MessageBox(0, Url, 0, 0);
        leeren();
        static HINTERNET hSession;
        BOOL bExist;
        hSession = InternetOpen( szTitel, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );
    if( hSession )
    {
      HINTERNET hService;
      hService = InternetOpenUrl( hSession, Url, NULL, 0, 0, 0 );
      if(hService)
      {
        //while(1)
        {
    
          DWORD dwBytesRead;  
          InternetReadFile(hService, lpBuffer, 1024, &dwBytesRead);
          if(dwBytesRead == 0);// break;
          lpBuffer[dwBytesRead] = 0; 
    
        }
      }
      InternetCloseHandle(hService);
      if(lpBuffer[0] == 'C')
      {
          //MessageBox(0, lpBuffer, 0, 0);
          SetWindowText(hPath, lpBuffer);
          bExist = TRUE;
          return TRUE;
      }
      else
      {
          bExist = FALSE;
      }   return FALSE;
    }
    InternetCloseHandle(hSession);
        return bExist;
    }
    

    Wie kann ich da etz ein Timeout von sagen wir 600 ms einbauen!? Denn wenn die Funktion auf einen Server gerät der zwar Port 80 offen hat, jedoch erst nach 5 Minuten antwortet ist das seeehr nervig! Mit anpingen kann ichs vergessen da es auch Server gibt die schnell aufn Ping reagieren jedoch bei HTTP erst nach einigen Minuten eine Absage geben!

    Danke schonmal!

    Kevin



  • Siehe MSDN:
    'Calling Win32 Internet Functions Asynchronously'



  • In der InternetMSDN scheint das Down zu sein. Auf meiner Pladde der hat das nicht - toll! Kannst du mir vielleicht den Text hier rein pasten oder ein Beispiel geben?

    Danke

    Kevin




Anmelden zum Antworten