windows网络编程【001】打印WSAPROTOCOL_INFO -_-!~~~~~~

windows网络编程【001】打印WSAPROTOCOL_INFO -_-!~~~~~~
代码:

#pragma comment(lib, " Ws2_32.lib " )
#include
< winsock2.h >
#include
< iostream.h >

void  WSAprint(WSAPROTOCOL_INFO  * lpProtocolBuf)
{
    cout
<<"dwCatalogEntryId-> "<<lpProtocolBuf->dwCatalogEntryId<<endl;
    cout
<<"dwProviderFlags -> "<<lpProtocolBuf->dwProviderFlags<<endl;
    cout
<<"dwServiceFlags1 -> "<<lpProtocolBuf->dwServiceFlags1<<endl;
    cout
<<"dwServiceFlags2 -> "<<lpProtocolBuf->dwServiceFlags2<<endl;
    cout
<<"dwServiceFlags3 -> "<<lpProtocolBuf->dwServiceFlags3<<endl;
    cout
<<"dwServiceFlags4 -> "<<lpProtocolBuf->dwServiceFlags4<<endl;
    cout
<<"iAddressFamily -> "<<lpProtocolBuf->iAddressFamily<<endl;
    cout
<<"iMaxSockAddr    -> "<<lpProtocolBuf->iMaxSockAddr<<endl;
    cout
<<"iNetworkByteOrder -> "<<lpProtocolBuf->iNetworkByteOrder<<endl;
    cout
<<"iProtocol       -> "<<lpProtocolBuf->iProtocol<<endl;
    cout
<<"iProtocolMaxOffset -> "<<lpProtocolBuf->iProtocolMaxOffset<<endl;
    cout
<<"iSecurityScheme -> "<<lpProtocolBuf->iSecurityScheme<<endl;
    cout
<<"iSocketType     -> "<<lpProtocolBuf->iSocketType<<endl;
    cout
<<"iVersion        -> "<<lpProtocolBuf->iVersion<<endl;
    cout
<<"szProtocol      -> "<<lpProtocolBuf->szProtocol<<endl;
}


void  main( void )
{
    WSADATA WSAData;
    DWORD lpdwBufferLength 
= 0;
    WSAPROTOCOL_INFO 
*lpProtocolBuf = NULL;
    
    
if (WSAStartup(MAKEWORD(2,2), &WSAData))
        cout
<<"WSAStartup "<<WSAGetLastError()<<endl;
    
else{
        
if(SOCKET_ERROR != WSAEnumProtocols(NULL,lpProtocolBuf, &lpdwBufferLength))
        
{
            cout
<<"WSAEnumProtocols: should not have succeeded\n"<<endl;
        }

        
else if(WSAENOBUFS != WSAGetLastError())
             cout
<<"WSAEnumProtocols(1): "<<WSAGetLastError()<<endl;
        
else
        
{
            lpProtocolBuf 
= (WSAPROTOCOL_INFO *)malloc(lpdwBufferLength);
            
if (lpProtocolBuf)
            
{
                   DWORD nRet 
= WSAEnumProtocols(NULL, lpProtocolBuf, &lpdwBufferLength);
                   
if (SOCKET_ERROR == nRet)
                       cout
<<"WSAEnumProtocols(3): "<<WSAGetLastError()<<endl;
                   
else
                       
{
                        
for (int i=0; i< nRet; i++)
                           WSAprint(
&lpProtocolBuf[i]);
                       }

                   free(lpProtocolBuf);
             }

        }

    }

     if (SOCKET_ERROR == WSACleanup())
   
{
       cout
<<"WSACleanup failed with error "<<WSAGetLastError()<<endl;
       
return;
   }
    
     return ;
}

运行结果:
dwCatalogEntryId-> 1001
dwProviderFlags -> 8
dwServiceFlags1 -> 131174
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 2
iMaxSockAddr    -> 16
iNetworkByteOrder -> 0
iProtocol       -> 6
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 1
iVersion        -> 2
szProtocol      -> MSAFD Tcpip [TCP/IP]
dwCatalogEntryId-> 1002
dwProviderFlags -> 8
dwServiceFlags1 -> 132617
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 2
iMaxSockAddr    -> 16
iNetworkByteOrder -> 0
iProtocol       -> 17
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD Tcpip [UDP/IP]
dwCatalogEntryId-> 1004
dwProviderFlags -> 8
dwServiceFlags1 -> 140809
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 2
iMaxSockAddr    -> 16
iNetworkByteOrder -> 0
iProtocol       -> 17
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 6
szProtocol      -> RSVP UDP Service Provider
dwCatalogEntryId-> 1005
dwProviderFlags -> 8
dwServiceFlags1 -> 139366
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 2
iMaxSockAddr    -> 16
iNetworkByteOrder -> 0
iProtocol       -> 6
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 1
iVersion        -> 6
szProtocol      -> RSVP TCP Service Provider
dwCatalogEntryId-> 1114
dwProviderFlags -> 0
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -3
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{A0A7169C-1DB9-4D5E-8594-3976D0991E26}] SEQPACKET 3
dwCatalogEntryId-> 1115
dwProviderFlags -> 0
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -3
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{A0A7169C-1DB9-4D5E-8594-3976D0991E26}] DATAGRAM 3
dwCatalogEntryId-> 1116
dwProviderFlags -> 8
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -2147483648
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{B626B50F-0244-4460-A218-1D8466D9E7A3}] SEQPACKET 0
dwCatalogEntryId-> 1117
dwProviderFlags -> 8
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -2147483648
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{B626B50F-0244-4460-A218-1D8466D9E7A3}] DATAGRAM 0
dwCatalogEntryId-> 1118
dwProviderFlags -> 0
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -1
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{CC8B610C-90B7-46FE-839C-C5427023A576}] SEQPACKET 1
dwCatalogEntryId-> 1119
dwProviderFlags -> 0
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -1
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{CC8B610C-90B7-46FE-839C-C5427023A576}] DATAGRAM 1
dwCatalogEntryId-> 1120
dwProviderFlags -> 0
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -2
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{F696A8CB-6643-4958-AF37-E1D74C5C8CA4}] SEQPACKET 2
dwCatalogEntryId-> 1121
dwProviderFlags -> 0
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -2
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{F696A8CB-6643-4958-AF37-E1D74C5C8CA4}] DATAGRAM 2
dwCatalogEntryId-> 1122
dwProviderFlags -> 0
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -4
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{27234B9C-EE1B-4417-8044-3E473B55AC57}] SEQPACKET 4
dwCatalogEntryId-> 1123
dwProviderFlags -> 0
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -4
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{27234B9C-EE1B-4417-8044-3E473B55AC57}] DATAGRAM 4
dwCatalogEntryId-> 1124
dwProviderFlags -> 0
dwServiceFlags1 -> 131086
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -5
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 5
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{CDFF07DF-6E82-46BB-A752-240156F6A069}] SEQPACKET 5
dwCatalogEntryId-> 1125
dwProviderFlags -> 0
dwServiceFlags1 -> 131593
dwServiceFlags2 -> 0
dwServiceFlags3 -> 0
dwServiceFlags4 -> 0
iAddressFamily -> 17
iMaxSockAddr    -> 20
iNetworkByteOrder -> 0
iProtocol       -> -5
iProtocolMaxOffset -> 0
iSecurityScheme -> 0
iSocketType     -> 2
iVersion        -> 2
szProtocol      -> MSAFD NetBIOS [\Device\NetBT_Tcpip_{CDFF07DF-6E82-46BB-A752-240156F6A069}] DATAGRAM 5
Press any key to continue


地震让大伙知道:居安思危,才是生存之道。

你可能感兴趣的:(windows网络编程【001】打印WSAPROTOCOL_INFO -_-!~~~~~~)