zoukankan      html  css  js  c++  java
  • NetworkInterface网速监测

       private NetworkInterface[] nicArr;  //网卡集合
            private Timer timer;    //计时器
    
            public MainWindow()
            {
                InitializeComponent();
    
                InitNetworkInterface();
                InitializeTimer();
            }
    
    
            /// <summary>
            /// 初始化网卡
            /// </summary>
            private void InitNetworkInterface()
            {
                nicArr = NetworkInterface.GetAllNetworkInterfaces();
                for (int i = 0; i < nicArr.Length; i++)
                    cboNetworkInterface.Items.Add(nicArr[i].Name);
                cboNetworkInterface.SelectedIndex = 0;
            }
    
            /// <summary>
            /// 初始化计时器
            /// </summary>
            private void InitializeTimer()
            {
                timer = new Timer();
                timer.Interval = 1000;
                timer.Elapsed += timer_Elapsed;
                timer.Start();
            }
    
            void timer_Elapsed(object sender, ElapsedEventArgs e)
            {
                this.Dispatcher.Invoke(() =>
                {
                    UpdateNetworkInterface();
                });
            }
    
            /// <summary>
            /// 获取网络数据并更新到UI
            /// </summary>
            private void UpdateNetworkInterface()
            {
                NetworkInterface nic = nicArr[cboNetworkInterface.SelectedIndex];
    
                IPv4InterfaceStatistics interfaceStats = nic.GetIPv4Statistics();
    
                int bytesSentSpeed = (int)(interfaceStats.BytesSent - double.Parse(txtbBytesSent.Text)) / 1024;
                int bytesReceivedSpeed = (int)(interfaceStats.BytesReceived - double.Parse(txtbBytesReceived.Text)) / 1024;
    
                //更新控件
    
                  txtbSpeed.Text = nic.Speed.ToString()  +"  "+nic.GetPhysicalAddress().ToString().Trim()+"  "+nic.NetworkInterfaceType.ToString().Trim();
                //  txtbInterfaceType.Text = nic.NetworkInterfaceType.ToString();
                //txtbSpeed.Text = nic.Speed.ToString();
                txtbBytesReceived.Text = interfaceStats.BytesReceived.ToString();
                txtbBytesSent.Text = interfaceStats.BytesSent.ToString();
                txtbSentSecond.Text = bytesSentSpeed.ToString() + " KB/s";
                txtbReceivedSecond.Text = bytesReceivedSpeed.ToString() + " KB/s";
    
            }
    

      

  • 相关阅读:
    python写的文件同步服务器
    从外部调用Django模块
    python监视线程池
    RabbitMQ手册翻译 RPC服务的例子
    python logging 模块完整使用示例
    使用内存磁盘加速linux
    About learning on the internet
    [转]伟大的程序员是怎样炼成的
    RabbitMQ手册翻译 Hello World的例子
    事半功倍:你应该知道的HTML5五大特性(转)
  • 原文地址:https://www.cnblogs.com/xiangxiong/p/7403074.html
Copyright © 2011-2022 走看看