应该属于WINSOCK API,谢谢

解决方案 »

  1.   

    请参见: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rras/rras/rasdial.aspDWORD RasGetConnectionStatistics(
      HRASCONN hRasConn,
      RAS_STATS* lpStatistics
    );
    Requirements
    Client Requires Windows "Longhorn", Windows XP, or Windows 2000 Professional. 
    Server Requires Windows Server "Longhorn", Windows Server 2003, or Windows 2000 Server. 
    Header Declared in Ras.h.
     
    Library Link to Rasapi32.lib.
     
    DLL Requires Rasapi32.dll.  
    不过vc6.0里没有这个定义,但是vc里有这个函数的静态库说明和动态库,
    你可以自己定义结构和宣称函数:
    #include  <ras.h> 
    typedef struct _RAS_STATS 
    {  
        DWORD dwSize;  
        DWORD dwBytesXmited;  
        DWORD dwBytesRcved;  
        DWORD dwFramesXmited;  
        DWORD dwFramesRcved;  
        DWORD dwCrcErr;  
        DWORD dwTimeoutErr;  
        DWORD dwAlignmentErr;
        DWORD dwHardwareOverrunErr;
        DWORD dwFramingErr; 
        DWORD dwBufferOverrunErr; 
        DWORD dwCompressionRatioIn; 
        DWORD dwCompressionRatioOut;  
        DWORD dwBps; 
        DWORD dwConnectDuration;
    } RAS_STATS, *PRAS_STATS;extern "C" DWORD APIENTRY RasGetConnectionStatistics(
                                     HRASCONN hRasConn,
                                     RAS_STATS* lpStatistics
                                     );
      

  2.   

    void CTrafficMonitorInfo::NetworkTraffic()
    {
    DWORD             dwIndex;
    DWORD             dwResult;
    ULONG             OutBufLen;
    IP_ADAPTER_INFO   AdapterInfo;
       PIP_ADAPTER_INFO  pAdapterNext;
    MIB_IFROW         IfRow; OutBufLen = sizeof(IP_ADAPTER_INFO);
    dwResult  = GetAdaptersInfo(&AdapterInfo,&OutBufLen);
    if(dwResult == ERROR_BUFFER_OVERFLOW)
    {
    GetAdaptersInfo(&AdapterInfo,&OutBufLen);
    }
    else if (dwResult != ERROR_SUCCESS)
    {
    printf("GetAdaptersInfo Error: %d\n",GetLastError());
    } pAdapterNext = &AdapterInfo;
    while(pAdapterNext != NULL)
    {
    dwIndex = pAdapterNext->Index; IfRow.dwIndex = dwIndex;
    if((dwResult  = GetIfEntry(&IfRow)) != NO_ERROR)
    {
    printf("GetIfEntry Error: %d\n",dwResult);
    break;
    } printf("\t%12s%12s%10s\t%s\n","Unicast","NUnicast","Error","Bytes");
    printf("%s\t%12d%12d%10d\t%d\n","Send:",IfRow.dwOutUcastPkts,IfRow.dwOutNUcastPkts,IfRow.dwOutErrors,IfRow.dwOutOctets);
    printf("%s%12d%12d%10d\t%d\n","Receive:",IfRow.dwInUcastPkts,IfRow.dwInNUcastPkts,IfRow.dwInErrors,IfRow.dwInOctets);
    printf("%s\t%12d%12d%10d\t%d\n","Total:",
       IfRow.dwInUcastPkts  + IfRow.dwOutUcastPkts,
       IfRow.dwInNUcastPkts + IfRow.dwOutNUcastPkts,
       IfRow.dwInErrors     + IfRow.dwOutErrors,
       IfRow.dwInOctets     + IfRow.dwOutOctets);
    }
    稍微改一下,放定时器里面就可以了。