程序效果演示:
//cpp源代码如下:
// WSAEnumProtocols枚举网络协议.cpp : 定义控制台应用程序的入口点。
//vs2008
#include "stdafx.h" //引用stdio.h,tchar.h(包含_tprintf(),_tsystem())
#include <Winsock2.h>
#pragma comment (lib,"Ws2_32.lib")
/*
定义指针时为什么要初始化?
如果该指针是局部变量,则如果没初始化,它的值是随机值,对于它的操作很可能引起段错误,导致程序崩溃
如果该指针是全局变量,则它默认的初始值是NULL,任何最NULL指针的引用都会被判错,导致程序崩溃。
一个合格的程序员必须养成在定义的时候指针是对其初始化,并且对用完的指针置NULL。
*/
int _tmain(int argc, _TCHAR* argv[])
{
WSADATA WSAData={0};//网络数据结构体
LPWSAPROTOCOL_INFO lpWSAProtocol_info=NULL;
DWORD dwLength;//n个WSAPROTOCOL_INFO的长度
int nRet=WSAStartup(MAKEWORD(2,2),&WSAData);
if(nRet!=0)