我用Vs 2008编写一个小程序,我想测量本地主机某个进程或者某个端口对应的实时的网络流量(接收和发送的字节数及速度)。请问windows 提供这样的API吗?如果不提供,应该怎么办呢?我的程序现在可以列出windows所有的运行的进程,以及所有打开的端口号。但是不知道如何才能统计出由这些进程或者端口产生的实时网络流量。还请大牛不吝赐教,万分感谢!!!流量网络Windows监控

解决方案 »

  1.   

    这种程序有什么意义,Windows 8开始,任务管理器内置针对进程的流量、IO访问等的统计。
      

  2.   

    PerformanceCounter可以
    下面只是部分介绍, 在C#中可以使用你运行下perfmon,打开性能监视器,添加,里面有很多计数器,比如Network Adpter之类的
    所有这里面能检测到的都能以在程序里拿到http://msdn.microsoft.com/zh-cn/library/system.diagnostics.performancecounter(v=vs.80).aspxhttp://www.cnblogs.com/xh831213/archive/2008/06/12/1218234.html
      

  3.   

    LZ  
    http://bbs.csdn.net/topics/390404605
      

  4.   

    总流量跟单个流量完全两回事  哪有啥借鉴的?
    这个要么用SPI LSP监控端口流量 在根据端口反推进程ID 计算每个进程的端口流量总和 比较麻烦要能写驱动那就多了 NDIS TDI AFD
    过滤统计 开源代码也多只写应用不熟悉驱动的可以参考winpcap
      

  5.   

    http://blog.csdn.net/king1991wbs/article/details/6894722
    要针对某个端口,你需要去监听抓取ip包 http://www.baidu.com/s?wd=C%23%20%E6%8A%93%E5%8F%96%E7%BD%91%E7%BB%9C%E5%8C%85&pn=20&ie=utf-8&rsv_page=1
      

  6.   

    看看这个实现:http://www.codeproject.com/Articles/14598/Applications-Traffic-Watcher