使用 GetTcpStatistics 检索信息

GetTcpStatistics 函数使用有关本地计算机的 TCP 协议统计信息的信息填充指向 MIB_TCPSTATS 结构的指针。

使用 GetTcpStatistics

  1. 声明一些所需的变量。

    声明将用于错误检查函数调用的 DWORD 变量 dwRetVal 。 声明指向名为 pTCPStats的MIB_TCPSTATS变量的指针,并为 结构分配内存。 检查是否可以分配内存。

    DWORD dwRetVal = 0;
    PMIB_TCPSTATS pTCPStats;
    
    pTCPStats = (MIB_TCPSTATS *) malloc(sizeof (MIB_TCPSTATS));
    if (pTCPStats == NULL) {
        printf("Error allocating memory\n");
    }
    
  2. 使用 pTCPStats 参数调用 GetTcpStatistics 函数,以检索本地计算机上 IPv4 的 TCP 统计信息。 检查错误并返回 DWORD 变量 dwRetVal中的错误值。 如果发生错误, dwRetVal 可以使用 变量进行更广泛的错误检查和报告。

        if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) {
            printf("GetTcpStatistics failed with error: %ld\n", dwRetVal);
        } 
    
  3. 如果调用成功,则访问 pTCPStats 参数指向MIB_TCPSTATS返回的数据。

    printf("\tNumber of active opens:  %u\n", pTCPStats->dwActiveOpens);
    printf("\tNumber of passive opens: %u\n", pTCPStats->dwPassiveOpens);
    printf("\tNumber of segments received: %u\n", pTCPStats->dwInSegs);
    printf("\tNumber of segments transmitted: %u\n", pTCPStats->dwOutSegs);
    printf("\tNumber of total connections: %u\n", pTCPStats->dwNumConns);
    
  4. 释放为 pTCPStats 参数指向的 MIB_TCPSTATS 结构分配的内存。 在应用程序不再需要 pTCPStats 参数返回的数据后,应执行此操作。

    if (pTCPStats)
        free(pTCPStats);
    

下一步: 使用 GetIpStatistics 检索信息

上一步: 使用 GetIpStatistics 检索信息

完整的源代码