Hola a todos.
Tengo el código siguiente:
using System.Runtime.InteropServices;
class FuncionesAyudaIP
{
[DllImport("iphlpapi.dll")]
public static extern int GetTcpStatistics(ref MIB_TCPSTATS pStats);
//en esta estructura se reciben las estadísticas del protocolo TCP:
public struct MIB_TCPSTATS
{
int dwRtoAlgorithm;
int dwRtoMin;
int dwRtoMax;
int dwMaxConn;
int dwActiveOpens;
int dwPassiveOpens;
int dwAttemptFails;
int dwEstabResets;
int dwCurrEstab;
int dwInSegs;
int dwOutSegs;
int dwRetransSegs;
int dwInErrs;
int dwOutRsts;
int dwNumConns;
}
public int ObtenerEstadisticasTCP(ref MIB_TCPSTATS mibTCP)
{ return GetTcpStatistics(ref mibTCP); }
}
y en el form_load:
private void Form1_Load(object sender, EventArgs e)
{
FuncionesAyudaIP ipHelper = new FuncionesAyudaIP();
FuncionesAyudaIP.MIB_TCPSTATS mibTCP = new FuncionesAyudaIP.MIB_TCPSTATS();
ipHelper.ObtenerEstadisticasTCP(ref mibTCP);
}
Cuando utilizo la función GetIpStatistics (con la estructura adecuada,
MIB_IPSTATS que es otra diferente a la que os he puesto aqui) recibo sin
problemas los datos de estadísticas del protocolo IP, pero con la función
GetTcpStatistics me salen a cero todos los campos de la estructura
estadísticas de TCP.
No veo que puede estar pasando. ¿podeis probarlo alguno de vosotros a ver si
os sucede lo mismo?.
Un saludo y gracias.
P.D.
Estructura para TCP:
public struct MIB_IPSTATS
{
int dwForwarding;
int dwDefaultTTL;
int dwInReceives;
int dwInHdrErrors;
int dwInAddrErrors;
int dwForwDatagrams;
int dwInUnknownProtos;
int dwInDiscards;
int dwInDelivers;
int dwOutRequests;
int dwRoutingDiscards;
int dwOutDiscards;
int dwOutNoRoutes;
int dwReasmTimeout;
int dwReasmReqds;
int dwReasmOks;
int dwReasmFails;
int dwFragOks;
int dwFragFails;
int dwFragCreates;
int dwNumIf;
int dwNumAddr;
int dwNumRoutes;
}
[DllImport("iphlpapi.dll")]
public static extern int GetIpStatistics (ref MIB_IPSTATS mib);
Leer las respuestas