使用 GetTcpStatistics 检索信息
GetTcpStatistics 函数使用有关本地计算机的 TCP 协议统计信息的信息填充指向 MIB_TCPSTATS 结构的指针。
使用 GetTcpStatistics
声明一些所需的变量。
声明将用于错误检查函数调用的 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"); }
使用 pTCPStats 参数调用 GetTcpStatistics 函数,以检索本地计算机上 IPv4 的 TCP 统计信息。 检查错误并返回 DWORD 变量
dwRetVal
中的错误值。 如果发生错误,dwRetVal
可以使用 变量进行更广泛的错误检查和报告。if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) { printf("GetTcpStatistics failed with error: %ld\n", dwRetVal); }
如果调用成功,则访问 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);
释放为 pTCPStats 参数指向的 MIB_TCPSTATS 结构分配的内存。 在应用程序不再需要 pTCPStats 参数返回的数据后,应执行此操作。
if (pTCPStats) free(pTCPStats);
完整的源代码