Получение сведений с помощью GetTcpStatistics
Функция GetTcpStatistics заполняет указатель на структуру MIB_TCPSTATS сведениями о статистике протокола TCP для локального компьютера.
Использование GetTcpStatistics
Объявите некоторые необходимые переменные.
Объявите переменную
dwRetVal
DWORD, которая будет использоваться для вызовов функций проверки ошибок. Объявите указатель на переменную MIB_TCPSTATS с именем pTCPStats и выделите память для структуры. Убедитесь, что память может быть выделена.DWORD dwRetVal = 0; PMIB_TCPSTATS pTCPStats; pTCPStats = (MIB_TCPSTATS *) malloc(sizeof (MIB_TCPSTATS)); if (pTCPStats == NULL) { printf("Error allocating memory\n"); }
Вызовите функцию GetTcpStatistics с параметром pTCPStats , чтобы получить статистику TCP для IPv4 на локальном компьютере. Проверьте наличие ошибок и верните значение ошибки в переменной
dwRetVal
DWORD . При возникновенииdwRetVal
ошибки переменную можно использовать для более широкой проверки ошибок и создания отчетов.if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) { printf("GetTcpStatistics failed with error: %ld\n", dwRetVal); }
Если вызов был успешным, получите доступ к данным, возвращенным в MIB_TCPSTATS , на который указывает параметр pTCPStats .
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);
Освободите память, выделенную для структуры MIB_TCPSTATS , на которую указывает параметр pTCPStats . Это необходимо сделать, когда приложению больше не нужны данные, возвращаемые параметром pTCPStats .
if (pTCPStats) free(pTCPStats);
Следующий шаг . Получение сведений с помощью GetIpStatistics
Предыдущий шаг . Получение сведений с помощью GetIpStatistics
Полный исходный код