每个应用程序中的互联网使

时间:2011-02-14 13:34:02

标签: c# networking

我想问一下如何获得某些应用程序(如流媒体等)使用的互联网金额。我想在C#中创建一个程序,我不知道如何启动它....提出一些建议,谢谢

3 个答案:

答案 0 :(得分:3)

作为起点,我会看一下WinSock API。您可以找到一种基于每个进程提取交通信息的方法。 如果您想查看总网络使用情况,我会使用性能监控工具。我从web search

中找到了这个例子
private static void ShowNetworkTraffic()
{
     PerformanceCounterCategory performanceCounterCategory = new PerformanceCounterCategory("Network Interface");
     string instance = performanceCounterCategory.GetInstanceNames()[0]; // 1st NIC !
     PerformanceCounter performanceCounterSent = new PerformanceCounter("Network Interface", "Bytes Sent/sec", instance);
     PerformanceCounter performanceCounterReceived = new PerformanceCounter("Network Interface", "Bytes Received/sec", instance);

     for (int i = 0; i < 10; i++)
     {
         Console.WriteLine("bytes sent: {0}k\tbytes received: {1}k", performanceCounterSent.NextValue() / 1024, performanceCounterReceived.NextValue() / 1024);
         Thread.Sleep(500);
      }
}

答案 1 :(得分:1)

据我所知,没有标准方法来测量每个应用程序的网络带宽。使用标准方法获得的最大收益基本上是netstatperfmon显示的内容。计算每个应用程序度量标准的唯一方法是编写NDIS筛选器驱动程序,或使用现有的筛选器驱动程序(如WinPcap)。但是,您必须在每台目标计算机上安装驱动程序。

答案 2 :(得分:0)

试试这个:How to calculate network bandwidth speed in c#

修改

现在,我更好地理解了这个问题,请尝试查看this其他问题