• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 298  文章 - 377  trackbacks - 0
            <2013年4月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            常用鏈接

            留言簿(34)

            隨筆分類

            隨筆檔案

            文章檔案

            相冊

            收藏夾

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            0
            InternetGetConnectedState
            BOOL InternetGetConnectedState(OUT LPDWORD lpdwFlags, IN DWORD dwReserved );
            判斷當前是否有internet連接
            有則返回 true,無則 false
            若有連接,則lpdwFlags 中會存放著連接方式
            1
            InternetOpen初始化WININET.DLL。它在其他的Win32網(wǎng)絡函數(shù)之前被調(diào)用。

            HINTERNET hNet = ::InternetOpen(
            "MSDN SurfBear", // 1 LPCTSTR lpszCallerName
            PRE_CONFIG_INTERNET_ACCESS, // 2 DWORD dwAccessType
            "", // 3 LPCTSTR lpszProxyName
            INTERNET_INVALID_PORT_NUMBER, // 4 INTERNET_PORT nProxyPort
            0 // 5 DWORD dwFlags
            ) ;
            InternetOpen返回一個類型為HINTERNET的句柄。其他的Win32網(wǎng)絡函數(shù)把這個句柄當作一個參數(shù)。
            InternetOpen 的第一個參數(shù)lpszCallerName指定正在使用網(wǎng)絡函數(shù)的應用程序。當HTTP協(xié)議使用時,這個名字將變成用戶代理。
            第二個參數(shù)dwAccessType指定訪問類型。
            NProxyPort參數(shù)用在CERN_PROXY_INTERNET_ACCESS中用來指定使用的端口數(shù)。使用INTERNET_INVALID_PORT_NUMBER相當于提供卻省的端口數(shù)。
            最后一個參數(shù)dwFlags,設置額外的選擇。
            當結(jié)束使用Wein32網(wǎng)絡函數(shù)時,應該調(diào)用InternetCloseHandle釋放InternetOpen分配的資源。
            2
            InternetOpenUrl函數(shù)連接到一個網(wǎng)絡服務器上并且最被從服務器上讀取數(shù)據(jù)。InternetOpenUrl能對FTP,Gopher或HTTP協(xié)議起作用。

            HINTERNET hUrlFile = ::InternetOpenUrl(
            hNet, // 1 HINTERNET hInternetSession
            "http://www.microsoft.com", // 2 LPCTSTR lpszUrl
            NULL, // 3 LPCTSTR lpszHeaders
            0, // 4 DWORD dwHeadersLength
            INTERNET_FLAG_RELOAD, // 5 DWORD dwFlags
            0 // 6 DWORD dwContext
            ) ;
            InternetOpenUrl返回一個HINTERNET,它被傳遞給在這個URL(統(tǒng)一資源定位)上操作的函數(shù)。
            InternetOpenUrl 的第一個參數(shù)hInternetSession是從InternetOpen返回的句柄。第二個參數(shù)lpszUrl是需要的資源的URL。下面兩個參數(shù) lpszHeaders和HeaderLength用來向服務器傳送額外的信息。使用這些參數(shù)要求具有正在使用的特定協(xié)議的知識。

            DwFlag是一個可以用幾種方式修改InternetOpenUrl行為的標志,InternetOpenUrl的行為包括關閉、隱藏,使原始數(shù)據(jù)可用和用存在的連接取代開辟一個新的連接。

            最后一個參數(shù)dwContext是一個 DWORD上下文值。如果有一個值已經(jīng)被指定,它將被送到狀態(tài)回調(diào)函數(shù)。如果這個值是0,信息將不會被送到狀態(tài)回調(diào)函數(shù)。
            3
            InternetReadFile函數(shù)用來讀取文件
            BOOL bRead = ::InternetReadFile(
            hUrlFile, // 1 HINTERNET hFile
            buffer, // 2 LPVOID lpBuffer
            sizeof(buffer), // 3 DWORD dwNumberOfBytesToRead
            &dwBytesRead // 4 LPDWORD lpdwNumberOfBytesRead
            );
            InternetReadFile接收InternetOpenUrl返回的句柄。它也對其他Win32網(wǎng)絡函數(shù),例如FtpOpenFile,FopherOpenFile和HttpOpenRequest返回的句柄有影響。

            剩 下的InternetReadFile的三個參數(shù)也非常的明白直接。Inbuffer是指向保留數(shù)據(jù)的緩沖區(qū)的一個無返回值指 針,dwNumberOfByteToRead以字節(jié)為單位指定緩沖區(qū)的尺寸。最后一個參數(shù),lpdwNumberOfBytesRead是一個指向包含 讀入緩沖區(qū)字節(jié)數(shù)的變量的指針。如果返回值是TRUE,而且lpdwNumberOfBytesRead指向0,則文件已經(jīng)讀到了文件的末尾。
            4
            InternetConnet函數(shù)連接到一個HTTP,F(xiàn)TP或Gopher服務器:
            HINTERNET hConnect = ::InternetConnect(
                       hSession,                    //1 HINTERNET hInternetSession
                       "www.microsoft.com",         //2 LPCTSTR lpszServerName
                       INTERNET_INVALID_PORT_NUMBER,//3 INTERNET_PORT nServerPort
                       "",                           //4 LPCTSTR lpszUsername
                       "",                           //5 LPCTSTR lpszPassword
                       INTERNET_SERVICE_HTTP,        //6 DWORD dwService
                       0,                            //7 DWORD dwFlags
                       O                             //8 DWORD dwContext
            ) ;
                 第六個參數(shù)dwService決定服務類型(HTTP,F(xiàn)TP或Gopher)。第二個參數(shù)(設置成www.microsoft.com)提供了服務器的地址。第一個參數(shù)hInternetSession是從InternetOpen返回的句柄。第四個、第五個參數(shù)提供一個用戶姓名和密碼 。這七個參數(shù)沒有控制任何標志影響HTTP操作。最后一個參數(shù)為狀態(tài)回調(diào)函數(shù)提供前后關系的信息。
            5
            HttpOpenRequest創(chuàng)建一個請求句柄并且把參數(shù)存儲在句柄中。HINTERNET hHttpFile = ::HttpOpenRequest(
                       hConnect,              // 1 HINTERNET hHttpSession
                       "GET",                 // 2 LPCTSTR lpszVerb
                       "/MSDN/MSDNINFO/",     // 3 LPCTSTR lpszObjectName
                       HTTP_VERSION,          // 4 LPCTSTR lpszVersion
                       NULL,                    // 5 LPCTSTR lpszReferer
                       0,                    // 6 LPCTSTR FAR * lplpszAcceptTypes
                       INTERNET_FLAG_DONT_CACHE,  // 7 DWORD dwFlags
                       0                      // 8 DWORD dwContext
            ) ;
               HttpOpenRequest的第一個參數(shù)是由InternetConnet返回的HINTERNET。HttpOpenRequest的第七和第八個參數(shù)執(zhí)行與InternetConnect中有相同名字的參數(shù)一樣的功能。
                 第 二個參數(shù)(“GET”)指定想要得到由第三個參數(shù)(“/MSDN/MSDNINFO/”)命名的對象。HTTP版已經(jīng)傳遞第四個參數(shù);現(xiàn)在,它肯定是 HTTP VERSION。因為“GET”是最流行的動詞類型,HttpOpenRequest將為這個參數(shù)接收一個空指針。
                 第五個參數(shù)lpszReferer是一個網(wǎng)點的地址。這個值可以為空。第六個參數(shù)執(zhí)行一個程序接收的文件類型列表。把空值傳遞給HttpOpenRequest即通知了服務器只有文本文件可以被接收。


            6
            HttpSendRequest
            把請求參數(shù)送到HTTP服務器。
            除了傳送請求外,HttpSendRequest允許傳送額外的HTTP標題給服務器。關于HTTP標題的信息可以在http://www.w3.org/ 上的最新的說明上找到。
            BOOL bSendRequest = ::HttpSendRequest(
                  hHttpFile, // 1 HINTERNET hHttpRequest
                  NULL,      // 2 LPCTSTR lpszHeaders
                  0,         // 3 DWORD dwHeadersLength
                  0,         // 4 LPVOID lpOptional
                  0          // 5 DWORD dwOptionalLength
            );
            7
            為了得到關于文件的信息,在調(diào)用HttpSendRequest后使用HttpQueryInfo函數(shù):

            BOOL bQuery = ::HttpQueryInfo(
                  hHttpFile,                 // 1 HINTERNET hHttpRequest
                  HTTP_QUERY_CONTENT_LENGTH, // 2 DWORD dwInfoLevel
                  bufQuery,                  // 3 LPVOID lpvBuffer
                  &dwLengthBufQuery          // 4 LPDWORD lpdwBufferLength
            ) ;
            查詢的結(jié)構是字符串或lpvBuffer中的字符串列表。HTTP_QUERY_CONTENT_LENGTH查詢得到文件的長度。可以使用HttpQueryInfo查詢大范圍的信息。
            此外,wininet中還有其他協(xié)議的函數(shù),比如一系列FTP協(xié)議的函數(shù)
            FtpCreateDirectory
            FtpDeleteFile
            FtpFindFirstFile
            FtpGetCurrentDirectory
            FtpGetFile
            FtpOpenFile
            FtpPutFile
            FtpRemoveDirectory
            FtpRenameFile
            FtpSetCurrentDirectory
            posted on 2013-04-08 23:17 聶文龍 閱讀(625) 評論(0)  編輯 收藏 引用
            一级a性色生活片久久无少妇一级婬片免费放 | 国产高潮国产高潮久久久91 | 中文字幕热久久久久久久| 三级三级久久三级久久| 久久久久久久久久久久中文字幕 | 久久99精品久久久久久hb无码 | 欧美大战日韩91综合一区婷婷久久青草| 无码任你躁久久久久久老妇| 人妻精品久久久久中文字幕一冢本| 国产综合久久久久| 午夜精品久久久久久久无码| 国产成人久久AV免费| 日本亚洲色大成网站WWW久久 | 性色欲网站人妻丰满中文久久不卡| 成人综合伊人五月婷久久| 亚洲精品tv久久久久久久久久| 少妇精品久久久一区二区三区| 亚洲国产精品人久久| 亚洲精品高清国产一线久久| 欧美激情精品久久久久久久| 国产一级做a爰片久久毛片| 精品伊人久久大线蕉色首页| 久久精品成人| 日本免费久久久久久久网站| 久久综合亚洲鲁鲁五月天| 久久精品人妻一区二区三区| 国产午夜久久影院| 精品久久久久久无码中文字幕一区 | 久久99精品国产一区二区三区| 亚洲色婷婷综合久久| 亚洲国产天堂久久综合| 久久精品国产99久久久香蕉| 国产精品欧美久久久久无广告| 蜜桃麻豆www久久| 久久精品国产亚洲欧美| 国产精品久久久久久影院| 潮喷大喷水系列无码久久精品| 色综合久久久久无码专区 | 亚洲伊人久久综合中文成人网| 久久99亚洲网美利坚合众国| 囯产精品久久久久久久久蜜桃 |