我需要跟踪每个应用程序在C#中通过端口发送和接收的数据量。
要使用的API或.NET对象是什么?
答案 0 :(得分:0)
性能监视器(perfmon
)公开的数据可通过HKEY_PERFORMANCE_DATA随时供应用程序使用。但是,它不包含您需要的详细程度。
资源监视器(resmon
)确实按进程显示网络活动(尽管不是通过端口),它使用Windows事件跟踪(ETW)。要在您的应用中重现resmon
数据,您需要从ETW捕获事件并自行总结总数。我不知道跟踪数据是否包含足够的信息来按端口号分解总数,但如果没有,我会感到惊讶。 ETW数据通常非常详细。但是,我不相信在.Net中使用ETW数据有任何支持。 ETW可以以非常高速率生成事件,因此编写本机DLL以使用和聚合数据可能会更好。
更简单的选择是找到现有工具。这是一个starting point。