Partager via


Récupération d’informations à l’aide de GetTcpStatistics

La fonction GetTcpStatistics remplit un pointeur vers une structure MIB_TCPSTATS avec des informations sur les statistiques de protocole TCP pour l’ordinateur local.

Pour utiliser GetTcpStatistics

  1. Déclarez certaines variables nécessaires.

    Déclarez une variable dwRetValDWORD qui sera utilisée pour les appels de fonction de vérification des erreurs. Déclarez un pointeur vers une variable MIB_TCPSTATS appelée pTCPStats et allouez de la mémoire pour la structure. Vérifiez que la mémoire peut être allouée.

    DWORD dwRetVal = 0;
    PMIB_TCPSTATS pTCPStats;
    
    pTCPStats = (MIB_TCPSTATS *) malloc(sizeof (MIB_TCPSTATS));
    if (pTCPStats == NULL) {
        printf("Error allocating memory\n");
    }
    
  2. Appelez la fonction GetTcpStatistics avec le paramètre pTCPStats pour récupérer des statistiques TCP pour IPv4 sur l’ordinateur local. Recherchez les erreurs et retournez la valeur d’erreur dans la variable dwRetValDWORD . Si une erreur se produit, la dwRetVal variable peut être utilisée pour la vérification et la création de rapports d’erreurs plus étendus.

        if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) {
            printf("GetTcpStatistics failed with error: %ld\n", dwRetVal);
        } 
    
  3. Si l’appel a réussi, accédez aux données retournées dans le MIB_TCPSTATS pointé par le paramètre 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. Libérez la mémoire allouée pour la structure MIB_TCPSTATS pointée vers le paramètre pTCPStats . Cette opération doit être effectuée une fois que l’application n’a plus besoin des données retournées par le paramètre pTCPStats .

    if (pTCPStats)
        free(pTCPStats);
    

Étape suivante : Récupération d’informations à l’aide de GetIpStatistics

Étape précédente : Récupération d’informations à l’aide de GetIpStatistics

Code source complet