当前位置:  开发笔记 > 编程语言 > 正文

监控流程的网络使用情况?

如何解决《监控流程的网络使用情况?》经验,为你挑选了2个好方法。

在C#或C/C++和Win32中是否有办法监视某个进程的网络使用情况(显然你没有构建该应用程序)?我想监视一个小时左右的1个进程,然后返回仅由该进程使用的字节,例如limewire.

可能吗?我知道windows上的netstat -e会告诉你发送/接收的总字节数,但这适用于所有进程.

编辑:如果我不能只返回一个进程使用情况,我如何获得整个系统发送/接收的字节数?作为netstat显示,除了我只想要整数.

例如:

netstat -e

                           Received            Sent

Bytes                    2111568926      1133174989
Unicast packets             3016480         2711006
Non-unicast packets            3122            1100
Discards                          0               0
Errors                            0               0
Unknown protocols                 0

我只想获得2个变量,如rec = 2111568926和sent = 1133174989



1> Sam Saffron..:

您可以使用WinPcap或编写自己的设备驱动程序.我不认为你可以利用每个进程的perfmon计数器.



2> Davy Landman..:

这是可能的,但如果我没有弄错,你将不得不创建一个网络驱动程序来过滤所有网络流量,而不是找出创建流量的流程.

微软有一个名为Microsoft Network Monitor 3.2(下载)的免费应用程序.根据发行说明,它也有一个API使用.

网络监视器API:创建自己的应用程序,捕获,解析和分析网络流量!

这是关于这些API的博客文章.

在我看来,您应该使用此API(或其他API,如WinPcap)来过滤流量,而不是编写自己的设备驱动程序.

推荐阅读
地之南_816
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有