亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? winsockdnsclient.cpp

?? This zip file contain tow TDI client samples.
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//****************************************************************************//
//*                                                                           //
//* Copyright (C) 2003, James Antognini, antognini@mindspring.com.            //
//*                                                                           //
//****************************************************************************//

/**************************************************************************************************/      
/*                                                                                                */      
/* Adapted from                                                                                   */
/* ms-help://MS.MSDNQTR.2002JUL.1033/wcewinsk/htm/_wcecomm_TCP_Stream_Socket_Client.htm.          */
/*                                                                                                */      
/**************************************************************************************************/      

#define JAProgNm      "WinsockDNSClient"
#define JAProgVersion "1.00"  

#include <winsock2.h>
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <process.h>
#include <commctrl.h>
#include <winioctl.h>

#include "TDIClient.h"

#define charDfltDNSServerAddr "207.69.188.186"
#define charDfltDNSPort       "53"

PUCHAR
CopyNextStanza(IN PUCHAR pInData, OUT PUCHAR pStr)
  {
   PUCHAR pNextAvail;

   do
     {
      UCHAR tmpName[63+1+1],
            ulChar = *pInData;                        // Pick up length field. 

      if (0==ulChar)                                  // Zero?
        {
         pNextAvail = NULL;
         break;
        }

      memcpy(tmpName, pInData+1, ulChar);             // Copy partial name to temp.

      tmpName[ulChar] = '.';                          // Append a period
      tmpName[ulChar+1] = 0;                          //   and a null terminator.

      strcat((char *)pStr, (char *)tmpName);          // Copy from temp to permanent.

      pNextAvail = pInData +                          // Point to next available byte in permanent.
                   strlen((char *)tmpName);
     }
      while(0);

   return pNextAvail;
  }

int main(
         IN int    nbrArgs,
         IN char * pArgv[]
        )
{
  #define rcOK         0
  #define rcError      8

  #define CmdUnknown   0
  #define CmdStart     1
  #define CmdStop      2
  #define CmdTest      3
  #define CmdTest2     4

  static struct
    {
     DWORD CmdCode;
     char * pInStr;
    }
     InStrArr[] =
       {                                              // Except that CmdUnknown has to be first, the following can be in any order.
        {CmdUnknown, ""},
        {CmdTest,   "DNSServer"},
        {CmdTest2,  "."},
       };

  char             static dfltIPAddr[] =              // Default IP address.
                            charDfltDNSServerAddr,
                          dfltPort[] =                // Default port.
                            charDfltDNSPort,
                          dfltName[] = "www.ibm.com",
                          DateCompiledBase[] = __DATE__,
                          TimeCompiledBase[] = " "__TIME__,
                          JAProgInfo[] = JAProgNm " v" JAProgVersion " (compiled ";

  #define CompDateTimeStr "dd mmm yyyy hh:mm:ss"      

  char                    DateCompiled[12] =          // Build date in preferred (dd mmm yyyy) format.
                            {DateCompiledBase[4], DateCompiledBase[5], DateCompiledBase[6],
                             DateCompiledBase[0], DateCompiledBase[1], DateCompiledBase[2], DateCompiledBase[3],
                             DateCompiledBase[7], DateCompiledBase[8], DateCompiledBase[9], DateCompiledBase[10],
                             0x0
                            },
                          szClientA[TDIClientRecvBfrLen],
                          PgmCompiledInfo[sizeof(CompDateTimeStr)+1];
  char                  * pIPAddr,     
                        * pPort;       
  int rcRecv,                         // Return value of recv function
      port,                           // Port to use.
      i,
      rc = rcOK,
      lnInStrArr =                    // Get number of instances.          
        sizeof InStrArr / sizeof InStrArr[0],                           
      lclStatus,
      sendLn,
      CmdNbr = CmdUnknown;
  BOOL bFirst = TRUE;

  SOCKET ServerSock = INVALID_SOCKET; // Socket bound to the server
  SOCKADDR_IN destination_sin;        // Server socket address
  PHOSTENT pHostEnt = NULL;           // Points to the HOSTENT structure of the server
  WSADATA WSAData;                    // Contains details of the Winsocket implementation
  PUSHORT pShort;

  char * pBuffer = NULL,
       * pQuestData;

  typedef struct _myDNSQuery
    {
     USHORT            QueryId;
     union
       {
        USHORT         QueryFields;
        struct
          {
           USHORT      RecursDesired : 1;             // 1 ==> recursion desired.
           USHORT      Truncd        : 1;             // 1 ==> message truncated.  Meaningful only in responses.
           USHORT      AuthAnsw      : 1;             // 1 ==> authoritative answer.  Meaningful only in responses.
           USHORT      OpcodeFd      : 4;             // 0 ==> standard query.
           USHORT      QryReqFd      : 1;             // 0 ==> query; 1 ==> response.
           USHORT      RespCode      : 4;             // Response code:  0 ==> success;
                                                      //                 1 ==> format error; 
                                                      //                 2 ==> server error; 
                                                      //                 3 ==> name error; 
                                                      //                 4 ==> not implemented;
                                                      //                 5 ==> refused.
           USHORT      ZReserved     : 3;             // Reserved.
           USHORT      RecursAvail   : 1;             // 1 ==> recursion available in server.
          };
       };
     USHORT            QuestionCount;                 // Number of entries in question section.
     USHORT            AnswerCount;                   // Number of resource records (RRs) in answer section.
     USHORT            NSRRCount;                     // Number of name-server RRs in authority-records section.
     USHORT            AddRRCount;                    // Number of RRs in addition records section.
     char              Question[1];                   // Beginning of question section.
    }
     myDNSQuery, * pMyDNSQuery;

  typedef struct _myDNSRR                             // Map response AFTER name field, which may be a name or an offset to a name.
    {
     USHORT            RRType;                        // RR type code.
     USHORT            RRClass;                       // Class of data in RRData.
     ULONG             RRTTL;                         // Time to live, in seconds.
     USHORT            RRRDataLn;                     // Size of RRData.
     char              RRData[1];                     // Response record data.  Interpretation depends on RespType and RespClass.
    }
     myDNSRR, * pMyDNSRR;

  pMyDNSQuery pQryData,
              pRspData;

  pMyDNSRR    pRRData;

  if (' '==DateCompiled[0])
   strcpy(PgmCompiledInfo, DateCompiled+1);
  else
   strcpy(PgmCompiledInfo, DateCompiled+0);

  strcat(PgmCompiledInfo, TimeCompiledBase);

  printf("%s%s)\n", JAProgInfo, PgmCompiledInfo);

  if (nbrArgs>=2)
    {
     for (i = 1; i < lnInStrArr; i ++)                // Go through expected parameters.
       if (0==_stricmp(pArgv[1], InStrArr[i].pInStr)) // Does the second parm match?
         break;                                       // If yes, break.
    }
  else
    i = lnInStrArr;                                   // Ensure next conditional yields supported parameter information.

  if (i<lnInStrArr)                                   // Found a supported command?
    {
     CmdNbr = InStrArr[i].CmdCode;
     if (CmdTest2==CmdNbr)                            // Dot given?
       CmdNbr = CmdTest;                              // Use full command.
    }
  else
    {
     printf("\nUnsupported command\n\n");
     printf("Usage: " JAProgNm " <operand>\n\n");
     printf("       where <operand> is one of these:\n\n");
     for (i = 1; i < lnInStrArr; i ++)
       printf("         %s\n", InStrArr[i].pInStr);
     printf("\n       Eg,\n\n         <DNSServer  | . <IP address | IP name | .> <port | .>>\n");
     printf("\n       (Capitalization is ignored.)\n");
     printf("\n       (Defaults:  IP addr = %s, port = %s.)\n", dfltIPAddr, dfltPort);

     rc = 1;
     goto ExitPoint;
    }

  if (nbrArgs>=3)
    {
     pIPAddr = pArgv[2];                              // Get IP address.
     if (0==strcmp(pIPAddr, "."))                     // Dot given?
       pIPAddr = dfltIPAddr;                          // Point to default IP address.
    }
  else
    pIPAddr = dfltIPAddr;                             // Get IP address.

  if (4==nbrArgs)
    {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av中文字幕一区二区三区| 欧美午夜在线一二页| 北条麻妃国产九九精品视频| 91高清视频免费看| 国产调教视频一区| 亚洲国产精品综合小说图片区| 国内精品嫩模私拍在线| 3d成人动漫网站| 另类综合日韩欧美亚洲| 欧美少妇性性性| 午夜在线成人av| 久久影音资源网| 亚洲国产色一区| 欧美精品一卡两卡| 日本一区二区视频在线观看| 国产成人精品亚洲午夜麻豆| 精品国产一区久久| 欧洲精品一区二区三区在线观看| 国产一区二区三区四| 中文字幕一区在线观看视频| 精品国产成人系列| 日韩一区二区在线观看视频| 国产成人丝袜美腿| 日本不卡一二三| 国产精品高潮久久久久无| 精品久久久久久无| 成人av午夜影院| 婷婷国产在线综合| 日韩一区在线播放| 精品欧美一区二区久久| 欧美揉bbbbb揉bbbbb| 成人亚洲一区二区一| 国内外精品视频| 日韩国产成人精品| 亚洲成人第一页| 亚洲自拍欧美精品| 亚洲欧美综合在线精品| 国产三级精品三级在线专区| 日韩美女天天操| 久久九九国产精品| 久久精品一二三| 韩国成人在线视频| 久久91精品国产91久久小草 | 欧美日韩成人在线一区| 欧美日本一道本在线视频| 欧美精品亚洲一区二区在线播放| 亚洲精品一卡二卡| 中文字幕一区在线观看视频| 亚洲精品日产精品乱码不卡| 亚洲综合丁香婷婷六月香| 不卡的av中国片| 国产精品自拍一区| 久久久久99精品一区| 东方欧美亚洲色图在线| 国产精品伦一区| 91视频观看视频| 亚洲国产日韩综合久久精品| 日韩视频不卡中文| 国产成人日日夜夜| 欧美国产日产图区| 蜜臀a∨国产成人精品| 男人操女人的视频在线观看欧美| 久久精品999| 精品一区二区三区不卡| 人禽交欧美网站| 懂色av一区二区在线播放| 日韩西西人体444www| 中文字幕精品在线不卡| 国产亚洲成av人在线观看导航| 狠狠网亚洲精品| 中文字幕字幕中文在线中不卡视频| 在线观看欧美精品| 麻豆国产精品777777在线| 日本一区二区三区国色天香| 欧美亚洲国产一卡| 麻豆精品一区二区av白丝在线| 国产欧美在线观看一区| 在线观看一区日韩| 国产在线不卡一卡二卡三卡四卡| 亚洲人成网站在线| 精品日韩成人av| 91精品91久久久中77777| 激情久久五月天| 亚洲综合在线观看视频| www国产精品av| 色婷婷香蕉在线一区二区| 精品一区二区三区在线播放视频| 亚洲免费色视频| 久久久久久久久久久久电影| 欧美日韩一本到| 99久久精品一区| 国产高清久久久久| 男女视频一区二区| 亚洲午夜激情网页| 亚洲精选在线视频| 国产欧美一区二区精品婷婷| 日韩一区二区三区电影在线观看| 色综合久久久久| 波多野结衣中文字幕一区 | 蜜臀久久99精品久久久画质超高清| 国产精品视频看| 国产日产欧美精品一区二区三区| 日韩欧美高清dvd碟片| 欧美日韩成人综合天天影院| 在线观看日产精品| 在线国产亚洲欧美| 在线免费不卡视频| 色综合天天综合在线视频| 成人午夜av在线| 国产精品18久久久久| 激情五月播播久久久精品| 卡一卡二国产精品| 蜜桃一区二区三区在线观看| 蜜臀99久久精品久久久久久软件| 日韩国产一二三区| 日韩中文字幕不卡| 日韩激情一二三区| 男人的天堂久久精品| 奇米一区二区三区av| 日本视频免费一区| 美女视频黄a大片欧美| 免费在线观看一区二区三区| 丝袜a∨在线一区二区三区不卡| 亚洲r级在线视频| 午夜精品久久久久影视| 日本亚洲电影天堂| 久久精品国产网站| 国产一区二区三区高清播放| 国产馆精品极品| aaa欧美色吧激情视频| 91网站在线观看视频| 欧美日韩亚洲综合在线| 91精品国产欧美一区二区| 日韩网站在线看片你懂的| www亚洲一区| 国产精品久久久久9999吃药| 一区二区在线观看av| 日韩国产精品久久久久久亚洲| 另类小说一区二区三区| 风间由美一区二区av101| 色8久久人人97超碰香蕉987| 欧美日韩国产精品成人| 久久亚洲一级片| 国产精品成人免费在线| 亚洲妇女屁股眼交7| 蜜臀久久99精品久久久画质超高清| 国产高清一区日本| 欧美色图12p| xvideos.蜜桃一区二区| 亚洲女人的天堂| 蜜臀av一区二区| 91丨九色丨蝌蚪丨老版| 日韩一区二区三区视频| 中文字幕中文字幕中文字幕亚洲无线| 亚洲免费观看高清完整版在线观看熊 | 色婷婷av一区二区三区软件| 欧美在线视频日韩| 26uuu久久天堂性欧美| 一区二区高清视频在线观看| 裸体一区二区三区| 91啦中文在线观看| 日韩欧美在线影院| 亚洲免费在线观看| 激情综合色综合久久| 欧美四级电影在线观看| 国产亚洲欧美激情| 午夜精品久久久久影视| 91网站在线观看视频| 久久综合狠狠综合久久激情| 亚洲韩国精品一区| 99视频精品在线| 欧美精品一区二| 免费亚洲电影在线| 色八戒一区二区三区| 亚洲国产成人午夜在线一区 | 欧美久久久一区| 中文字幕一区二区三| 国产在线观看免费一区| 欧美日韩国产经典色站一区二区三区 | 国产乱子伦一区二区三区国色天香| 欧美综合一区二区| 国产精品不卡在线| 国产91精品在线观看| 久久久亚洲精华液精华液精华液| 图片区小说区国产精品视频| 91啦中文在线观看| 国产精品福利一区二区| 成人免费视频caoporn| 精品国产一区二区三区av性色| 亚洲国产精品欧美一二99| 97精品久久久午夜一区二区三区 | 亚洲男同1069视频| 国产成都精品91一区二区三| 精品国产乱码久久久久久久久| 日韩av一区二区三区四区| 欧美专区在线观看一区| 亚洲欧美激情一区二区| 91视频观看视频| 亚洲免费观看在线视频| 91麻豆福利精品推荐|