码迷,mamicode.com
首页 > Web开发 > 详细

NetworkInterface网速监测

时间:2017-08-21 10:53:38      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:network   sed   dex   sre   tsp   com   initial   .net   time   

   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";

        }

  

NetworkInterface网速监测

标签:network   sed   dex   sre   tsp   com   initial   .net   time   

原文地址:http://www.cnblogs.com/xiangxiong/p/7403074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!