我需要确定类似于 TCPView 可以执行的每个进程的网络使用统计信息。
示例 http://img513.imageshack.us/img513/861/6601f15814544055a590e26.png
因此,在您因发布此问题或此问题的副本而向我开枪之前,我想指出,这些都没有可以帮助我真正做到这一点的彻底答案。
我一直在做研究,显然有很多方法可以列出活动连接及其相关进程,无论是 netstat 还是其他 Windows API,如IpHlpAPI.dll。
现在,从我所做的谷歌搜索来看,我没有找到太多 - 除了这些模糊的术语:GetPerTcpConnectionEStats和GetPerTcp6ConnectionEStats。大概分别用于 IPv4 和 IPv6 上的 TCP。现在我正在阅读它应该能够做我需要做的事情。但是,这仍然忽略了 UDP。这些在 TCPViewer 工作的 XP 系统上也不可用。
我会很满意将它们用于 TCP,但问题是,我似乎找不到任何关于如何从 C# 中使用它们的示例。
所以我想这一切都归结为以下几个问题:
- 有人真的知道 TCPView 是怎么做的吗?
- 如何为 TCP 使用 GetPerTcpConnectionEStats?或者它甚至可以完成我的建议吗?
- 是否有另一种适用于 UDP 的已知替代方案?
这样做的重点是查看进程本身的独立带宽使用情况。不计算总系统带宽使用量。
提前感谢您的任何和所有答案。