2010-10-10 16 views
6

Próbuję zarejestrować liczbę otwartych gniazd w mojej aplikacji serwera C#. Jak informacji można uzyskać z „netstat -s”:Uzyskaj liczbę otwartych gniazd w języku C#?

TCP Statistics for IPv4 

    Active Opens      = 22765 
    Passive Opens      = 9316 

mógłbym zanalizować wynik z „netstat” .. ale jeśli nie jest to klasa dla niego, to dlaczego ja ..

Przy okazji, przy pomocy klasy System.Diagnostics.Process, mogłem zalogować wiele uchwytów i wątków. Myślałem, że gniazdo jest uchwytem, ​​ale wygląda na to, że nie. W mojej sytuacji liczba uchwytów była poniżej # aktywnych połączeń z netstat.

Wszelkie sugestie, porady i odpowiedzi będą bardzo mile widziane. Dziękuję :)

Odpowiedz

5

Spójrz na TcpStatistics Class.

Na przykład TcpStatistics.CurrentConnections Property zwraca "Liczba połączeń TCP, dla których aktualny stan to ESTABLISHED lub CLOSE-WAIT."

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

Skała !!! dziękuję :) – wooohoh

+3

przy okazji, dla osób, które nie chcą szukać łącza ... to System.Net.NetworkInformation.IPGlobalProperties.GetIPGlobalProperties(). GetTcpIPv4Statistics() – wooohoh

+0

Niedostępne w wersji .Net compact 3.5. – Martlark

Powiązane problemy