ネットワーク接続を検出する方法:VC

 この方法の一つ:

#include " stdafx.hを"    
の#include " windows.hに" 
の#include <Sensapi.h>   
書式#include <iostreamの> 
の#include <Wininet.h>
 
#pragmaコメント(libに、 "Sensapi.lib")
 の#pragmaコメント(libに、 "Wininet.lib")
 
使用して 名前空間  はstdを、
 
INT _tmain(INT ARGC、TCHARは* ARGV []、TCHAR * envpを[])  
{  
    BOOL isConnect;
    DWORDはDW。
    isConnect = :: IsNetworkAlive(&DW);
    一方、1 
    {
        もし(isConnect)
            裁判所未満 << " IsNetworkAlive连接" << てendl;
        他の
            裁判所未満 << " IsNetworkAlive未连接" << てendl;
        裁判所未満 << " --------------------------------- " << てendl;
 
 
 
        DWORDはDW2。
        BOOL右 = InternetGetConnectedState(&DW2、0 );
        場合(右)
            裁判所未満 << " InternetGetConnectedState连接" << てendl;
        他の
            裁判所未満 << " InternetGetConnectedState未连接" << てendl;
        裁判所未満 << " ********************************** "   << てendl;
        
 
        BOOL bConnected = InternetCheckConnection(_T(" http://www.baidu.com ")、FLAG_ICC_FORCE_CONNECTION、0 );
        もし(bConnected)
            裁判所未満 << " InternetCheckConnection连接" << てendl;
        他の
            裁判所未満 << " InternetCheckConnection未连接" << てendl;
        裁判所未満 << " %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% "   << てendl;
 
        // IsDestinationReachable(_T( " http://www.google.com ")、)    
 
 
        coutの <<てendl <<てendl << てendl;
        スリープ(1000年);
 
    }
    getchar関数();
    リターン 1 ;  
}

 

方法2:

 

// www.baidu.comに接続します。   
      HINTERNET hConnect = てInternetConnect(hSession、
                                     " www.baidu.com " 
                                    INTERNET_INVALID_PORT_NUMBER、
                                    "" "" 
                                    INTERNET_SERVICE_HTTP、
                                    0 0 );
       
      //は、サーバーからファイル/index.phpを要求します。
      HINTERNET投げる= HttpOpenRequest(hConnect、
                                      " GET " " /index.php " 
                                     HTTP_VERSION、
                                     ヌル、
                                     0 
                                     INTERNET_FLAG_DONT_CACHE、
                                     0 )。
 
      // リクエストヘッダの追加 
      TCHAR szHeadersを[] = " 受け入れ:テキスト/ * \ rを\ nは" ;
      BOOL bAddHeaders = HttpAddRequestHeaders(hConnect、
                                  szHeaders、
                                  lstrlen(szHeaders)、
                                  HTTP_ADDREQ_FLAG_ADD);
 
      // リクエストを送信します。
      BOOL bSendRequest = HttpSendRequestを(投げる、NULL、000 );
 
      もし(投げる== NULL)
      {
              printf(" InternetOpenUrlのエラー...... \ N " );
              InternetCloseHandle(hSession)。
              リターン 0 ;
      }
       
      BOOLブレット = HttpQueryInfo(投げる、HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER、&dwStatusCode、&dwSizeOfStatusCode、NULL);
      もし(!BRET)
      {
             printf(" HttpQueryInfoエラー...... \ N " );
             リターン 0 ;
      }
       
      // キーポイント
      であれば404 == dwStatusCode)
      {
             InternetCloseHandle(投げます)。
             InternetCloseHandle(hSession)。
             リターン 0 ;
      }

 

おすすめ

転載: www.cnblogs.com/2018shawn/p/11810349.html