Поделиться через


Получение сведений с помощью GetTcpStatistics

Функция GetTcpStatisticsзаполняет указатель на структуру MIB_TCPSTATS со сведениями о статистике протокола TCP для локального компьютера.

Чтобы использовать GetTcpStatistics

  1. Объявите некоторые необходимые переменные.

    Объявите переменную 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");
    }
    
  2. Вызовите функциюgetTcpStatisticsс параметром pTCPStats, чтобы получить статистику TCP для IPv4 на локальном компьютере. Проверьте наличие ошибок и верните значение ошибки в переменной DWORDdwRetVal. При возникновении ошибки переменная dwRetVal может использоваться для более обширной проверки ошибок и создания отчетов.

        if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) {
            printf("GetTcpStatistics failed with error: %ld\n", dwRetVal);
        } 
    
  3. Если вызов оказался успешным, получите доступ к данным, возвращенным в 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);
    
  4. Освобождает память, выделенную для структуры MIB_TCPSTATS, на которую указывает параметр pTCPStats. Это необходимо сделать после того, как приложение больше не нуждается в данных, возвращаемых параметром pTCPStats.

    if (pTCPStats)
        free(pTCPStats);
    

Следующий шаг: Получение сведений с помощью GetIpStatistics

Предыдущий шаг: получение сведений с помощью GetIpStatistics

Полный исходный код