TCPView でできることと同様に、プロセスごとのネットワーク使用統計を決定する必要があります。
例 http://img513.imageshack.us/img513/861/6601f15814544055a590e26.png
したがって、この質問またはこの質問の複製を投稿したことで私を撃つ前に、どちらも私が実際にこれを行うのに役立つ完全な回答を持っていないことを指摘したいと思います.
私は調査を行ってきましたが、アクティブな接続とそれに関連するプロセスをリストする方法は明らかに多くあります。これは、 netstat またはIpHlpAPI.dllのような他の Windows API を使用する場合です。
今、私が行ったことから、私はあまり見つけられませんでした-これらのあいまいな用語を除いて: GetPerTcpConnectionEStatsおよびGetPerTcp6ConnectionEStats。おそらく、TCP over IPv4 および IPv6 用です。今、私が読んでいた場所では、私がする必要があることを実行できると思われます。ただし、それでもUDPは除外されます。また、これらは、TCPViewer が動作する XP システムでも利用できません。
私はそれらをTCPに使用することに満足していますが、問題は、C#からそれらを使用する方法の例を見つけることができないようです.
要するに、すべては次のいくつかの質問に集約されると思います。
- TCPViewがどのようにそれを行うかを実際に知っている人はいますか?
- TCP に GetPerTcpConnectionEStats を使用するにはどうすればよいですか? それとも、私が提案していることを達成することさえできますか?
- UDP で機能する別の既知の代替手段はありますか?
これの要点は、プロセス自体の独立した帯域幅の使用状況を確認することです。システム帯域幅の合計使用量を計算しません。
すべての回答に感謝します。