正文

枚举系统安装的所有协议2010-07-31 00:29:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/51564.html

分享到:

// EnumProtocol.cpp : 定义控制台应用程序的入口点。
//
// Get Procotol installed in os
// code @ VS2005
// by lym

#include "stdafx.h"
#include <iostream>
#include <Winsock2.h>
using namespace std;

#pragma comment(lib, "Ws2_32")

int _tmain(int argc, _TCHAR* argv[])
{
     WSADATA            wsd;
     DWORD              dwSize=0;
     WSAPROTOCOL_INFO* lpWsaprotocolInfo=NULL;
     int                ret, i;   

     // Load Winsock
     //
     if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
     {
          printf("WSAStartup() failed: %d\n", GetLastError());
          return -1;
     }

     // first call this funciton for get protocols size
     ret = WSAEnumProtocols(NULL,lpWsaprotocolInfo,&dwSize);
     if (ret == SOCKET_ERROR)
     {
            // new memory
          lpWsaprotocolInfo = new WSAPROTOCOL_INFO[dwSize];
          if (!lpWsaprotocolInfo)
          {
               printf("Msg: new memory failed!\n");
               return 0;
          }

 

        // second call this funcion for get protocols info
            ret = WSAEnumProtocols(NULL, lpWsaprotocolInfo, &dwSize);
          if (ret>0)
          {
               for (i=0;i<ret;i++)
               {
                    printf("Install Protocol (%d): %s\n", i+1, lpWsaprotocolInfo[i].szProtocol);
               }
          }
     }

     // free memory
     if (lpWsaprotocolInfo)
     {
          delete []lpWsaprotocolInfo;
     }

     // Clean Winsock    
     

    WSACleanup();

    // for pause

     cin >> i;

     return 0;
}

 

阅读(1913) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册