获取网络协议的步骤和代码(1)(4)
八、函数说明:
1、WSAStartup函数声明
int WSAStartup(WORD wVersionRequested, LPWSADATA lpWSAData)
wVersionRequested:为将要使用之Windows Stockets API版本,是一高位为次版本号,低位为主版本号的WORD类型整数。
lpWSAData:指向WSADATA资料之指针。
功能:完成windows Sockets之一系列初始化,乃使用windows Sockets之应用程序都必须调用的函数。该函数调用成功,返回“0”,可以使用Sockets;失败则返回错误值,使用不了Sockets。
2、WSAEnumProtocols函数声明
int WSAEnumProtocols(LPINT lpiProtocols,LPWSAPROTOCOL_INFO lpProtocolBuffer,LPDWORD lpdwBufferLength)
lpiProtocols:一个以NULL结尾的协议标识号数组,为可选参数。lpdwProtocols为NULL时返回所有可用协议信息;否则返回数组所列协议信息。
lpProtocolBuffer:以结构WSAPROTOCOL_INFO填充之缓冲区。WSAPROTOCOL_INFO结构用于存取一给定协议之完整信息。
lpdwBufferLength:输入时,用于存放传递给WSAEnumProtocols()函数之lpProtocolBuffer缓冲区长度;输出时,为所有获取网络协议的信息需传递于WSAEnumProtocols()函数之缓冲区长度。
功能:获取网络协议安装于本地PC机上的可用网络协议族,成功则返回协议数目,失败则返回错误值。
3、WSAPROTOCOL_INFO结构定义
- typedef struct_WSAPROTOCOL_INFO{
- DWORD dwServiceFlags1;
- DWORD dwServiceFlags2;
- DWORD dwServiceFlags3;
- DWORD dwServiceFlags4;
- DWORD dwServiceFlags;
- GUID ProviderId;
- DWORD dwCatalogEntryId;
- WSAPROTOCOLCHAIN ProtocolChain;
- int iVersion;
- int iAddressFamily;
- int iMaxSockAddr;
- int iMinSocAddr;
- int iSocketType;
- int iProtocl;
- int iProtoclMaxOffset;
- int iNetworkByteOrder;
- int iSecurityScheme;
- DWORD dwMessageSi;
- DWORD dwProviderReserved;
- TCHAR szProtocol[WSAPROTOCOL_LEN+1];
- }WSAPROTOCOL_INFO,*LPWSAPROTOCOL_INFO
dwServiceFlags1:表示不同协议属性之一个位字段。
szProtocol:指向网络协议族,由此参数获取网络协议。
功能:存放和获取一给定协议的完整信息。
评论暂时关闭