最近家里头的网络速度挺慢,检查发现机器上p2p一直在不停的贡献着网络流量,需要写一个程序来监视一下网络使用(其他程序也行,不过程序员嘛,还是自己写比较有成就感)
DOTNET提供了PerformanceCounter 组件,用于监视系统运行,太方便了,这次的核心就是这个东东。
先了解一下PerformanceCounter 组件,使用PerformanceCounter 可以监视应用程序的性能数据,或者监视系统上资源的性能,类别包括:Cache(缓存),Memory(内存),Objects(对象),PhysicalDisk(物理磁盘),Process(进程),Processor(处理器),Server(服务器),System(系统),Thread(线程)等等。
第一步,我们要创建一个PerformanceCounter 组件,需要MachineName, CategoryName, CounterName,InstanceName 这4个参数
* MachineName, 使用"."表示本机
* CategoryName, 网络流量需要使用的类别是"Network Interface"
* CounterName, 监视上传流量使用"Bytes Sent/sec",监视下载流量使用"Bytes Received/sec"
* InstanceName, 监视网卡名
第二步,采集样本以及计算网络流量
PerformanceCounter 提供了NextSample 函数来采集样本,采集的样本数据有CounterSample数据结构返回,通过两次采集获取都两个样本数据就可以使用CounterSample.Calculate函数计算网络流量了
原理就是这么简单,代码如下:NetWorkAdapter.cs
MonitorMgr.cs
最好就剩下界面调用了:
一个简单的网络流量监视程序就完成了