2010-10-10 15 views
6

Estoy intentando registrar el número de sockets abiertos en mi aplicación de servidor C#. Al igual que la información se podía obtener de "netstat -s":Obtener un número de sockets abiertos en C#?

TCP Statistics for IPv4 

    Active Opens      = 22765 
    Passive Opens      = 9316 

que se ha podido analizar el resultado de "netstat" .. pero si hay una clase para él, entonces ¿por qué ..

Por cierto, con la ayuda de la clase System.Diagnostics.Process, pude registrar una cantidad de identificadores, y subprocesos. Pensé que un zócalo es un asa, pero parece que no ... En mi situación, el n. ° de asas estaba muy por debajo del n. ° de conexiones activas de netstat.

Cualquier sugerencia, consejo o respuesta será muy apreciada. Gracias :)

Respuesta

5

Eche un vistazo a TcpStatistics Class.

Por ejemplo, el TcpStatistics.CurrentConnections Property devuelve "La cantidad de conexiones TCP para las que el estado actual es ESTABLISHED o CLOSE-WAIT".

long result = IPGlobalProperties.GetIPGlobalProperties() 
           .GetTcpIPv4Statistics() 
           .CurrentConnections; 
+0

you rock !!! gracias :) – wooohoh

+3

por cierto, para las personas que no quieren buscar el enlace ... es System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties(). GetTcpIPv4Statistics() – wooohoh

+0

No disponible en .Net compact edition 3.5. – Martlark

Cuestiones relacionadas