Получение сведений с помощью GetTcpStatistics
Функция GetTcpStatisticsзаполняет указатель на структуру MIB_TCPSTATS со сведениями о статистике протокола TCP для локального компьютера.
Чтобы использовать GetTcpStatistics
Объявите некоторые необходимые переменные.
Объявите переменную DWORD
dwRetVal
, которая будет использоваться для вызовов функций, проверяющих ошибки. Объявите указатель на переменную 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 на локальном компьютере. Проверьте наличие ошибок и верните значение ошибки в переменной DWORD
dwRetVal
. При возникновении ошибки переменная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
Полный исходный код