9

C#サーバーアプリケーションで開いているソケットの数をログに記録しようとしています。「netstat-s」から取得できる情報のように:

TCP Statistics for IPv4

  Active Opens                        = 22765
  Passive Opens                       = 9316

「netstat」の結果を解析できますが、そのクラスがある場合は、なぜそうなるのでしょうか。

ちなみに、System.Diagnostics.Processクラスの助けを借りて、いくつかのハンドルとスレッドをログに記録することができました。ソケットはハンドルだと思いましたが、そうではないようです。私の状況では、ハンドルの数はnetstatからのアクティブな接続の数をはるかに下回っていました。

任意の提案、アドバイスまたは回答は大歓迎です。ありがとうございました :)

4

1 に答える 1

11

TcpStatisticsクラスをご覧ください。

たとえば、TcpStatistics.CurrentConnectionsプロパティは、「現在の状態がESTABLISHEDまたはCLOSE-WAITのいずれかであるTCP接続の数」を返します。

long result = IPGlobalProperties.GetIPGlobalProperties()
                                .GetTcpIPv4Statistics()
                                .CurrentConnections;
于 2010-10-10T16:51:53.583 に答える