Recuperando informações usando GetTcpStatistics
A função GetTcpStatistics preenche um ponteiro para uma estrutura MIB_TCPSTATS com informações sobre as estatísticas de protocolo TCP para o computador local.
Para usar GetTcpStatistics
Declare algumas variáveis necessárias.
Declare uma variável
dwRetVal
DWORD que será usada para chamadas de função de verificação de erros. Declare um ponteiro para uma variável MIB_TCPSTATS chamada pTCPStats e aloque memória para a estrutura. Verifique se a memória pode ser alocada.DWORD dwRetVal = 0; PMIB_TCPSTATS pTCPStats; pTCPStats = (MIB_TCPSTATS *) malloc(sizeof (MIB_TCPSTATS)); if (pTCPStats == NULL) { printf("Error allocating memory\n"); }
Chame a função GetTcpStatistics com o parâmetro pTCPStats para recuperar estatísticas TCP para IPv4 no computador local. Verifique se há erros e retorne o valor de erro na variável
dwRetVal
DWORD . Se ocorrer um erro, adwRetVal
variável poderá ser usada para verificação de erros e relatórios mais abrangentes.if ((dwRetVal = GetTcpStatistics(pTCPStats)) != NO_ERROR) { printf("GetTcpStatistics failed with error: %ld\n", dwRetVal); }
Se a chamada tiver sido bem-sucedida, acesse os dados retornados no MIB_TCPSTATS apontados pelo parâmetro 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);
Libere a memória alocada para a estrutura MIB_TCPSTATS apontada pelo parâmetro pTCPStats . Isso deve ser feito depois que o aplicativo não precisar mais dos dados retornados pelo parâmetro pTCPStats .
if (pTCPStats) free(pTCPStats);
Próxima etapa: recuperando informações usando GetIpStatistics
Etapa anterior: recuperando informações usando GetIpStatistics
Código-fonte completo