zoukankan      html  css  js  c++  java
  • .net网络速度测试转

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Diagnostics;
    
    namespace ConsoleApplication1
    {
        public static class Ping
        {
            #region codes
            private const int TIME_OUT = 100;
            private const int PACKET_SIZE = 512;
            private const int TRY_TIMES = 2;
    
            private static Regex _reg = new Regex(@"时间=(.*?)ms", RegexOptions.Multiline | RegexOptions.IgnoreCase);
            private static float LaunchPing(string strCommandline, int packetSize)
            {
                Process proc = new Process();
                proc.StartInfo.Arguments = strCommandline;
                proc.StartInfo.UseShellExecute = false;
                proc.StartInfo.CreateNoWindow = true;
                proc.StartInfo.FileName = "ping.exe";
                proc.StartInfo.RedirectStandardInput = true;
                proc.StartInfo.RedirectStandardOutput = true;
                proc.StartInfo.RedirectStandardError = true;
    
                proc.Start();
                string strBuffer = proc.StandardOutput.ReadToEnd();
                proc.Close();
    
                Console.WriteLine(strCommandline);
                Console.WriteLine(strBuffer);
    
                return ParseResult(strBuffer, packetSize);
            }
    
            private static float ParseResult(string strBuffer, int packetSize)
            {
                if (strBuffer.Length < 1) return 0.0F;
    
                MatchCollection mc = _reg.Matches(strBuffer);
                if (mc == null || mc.Count < 1 || mc[0].Groups == null) return 0.0F;
                int avg;
                if (!int.TryParse(mc[0].Groups[1].Value, out avg)) return 0.0F;
                if (avg <= 0) return 1024.0F;
    
                return (float)packetSize / avg * 1000 / 1024;
            }
            #endregion codes
    
            /// <summary>
            ///
            /// </summary>
            /// <param name="strHost">主机名或ip</param>
            /// <returns>kbps/s</returns>
            public static float Test(string strHost)
            {
                return LaunchPing(string.Format("{0} -n {1} -l {2} -w {3}", strHost, TRY_TIMES, PACKET_SIZE, TIME_OUT), PACKET_SIZE);
            }
    
            /// <summary>
            ///
            /// </summary>
            /// <param name="strHost">主机名或ip</param>
            /// <param name="PacketSize">发送测试包大小</param>
            /// <param name="TimeOut">超时</param>
            /// <param name="TryTimes">测试次数</param>
            /// <returns>kbps/s</returns>
            public static float Test(string strHost, int PacketSize, int TimeOut, int TryTimes)
            {
                return LaunchPing(string.Format("{0} -n {1} -l {2} -w {3}", strHost, TryTimes, PacketSize, TimeOut), PacketSize);
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine(Ping.Test("baidu.com"));
                Console.Read();
            }
        }
    
    }
    

      

  • 相关阅读:
    java中判断文件存在与否
    crontab安装以及定时任务的执行
    su命令学习
    linux中如何查看哪些用户允许登录
    linux中的压缩文件的格式
    R语言学习(瑞士军刀)
    linux下mysql导入导出sql文件
    创建线程池的7种方法
    docker运行tomcat
    Docker之镜像
  • 原文地址:https://www.cnblogs.com/chuncn/p/2250551.html
Copyright © 2011-2022 走看看