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


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

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

Использование GetTcpStatistics

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

    Объявите переменную dwRetValDWORD, которая будет использоваться для вызовов функций проверки ошибок. Объявите указатель на переменную 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 на локальном компьютере. Проверьте наличие ошибок и верните значение ошибки в переменной dwRetValDWORD . При возникновении 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

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