如题,要获取一个端口号,而且这个端口号可用

解决方案 »

  1.   


    // <summary>
      /// 执行DOS命令,返回DOS命令的输出
      /// </summary>
      /// <param name="dosCommand">dos命令</param>
      /// <param name="milliseconds">等待命令执行的时间(单位:毫秒),如果设定为0,则无限等待</param>
      /// <returns>返回输出,如果发生异常,返回空字符串</returns>
      public static string Execute(string dosCommand, int milliseconds)
      {
       string output = "";     //输出字符串
       if (dosCommand != null && dosCommand != "")
       {
        Process process = new Process();     //创建进程对象
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = "cmd.exe";      //设定需要执行的命令
        startInfo.Arguments = "/C " + dosCommand;   //设定参数,其中的“/C”表示执行完命令后马上退出
        startInfo.UseShellExecute = false;     //不使用系统外壳程序启动
        startInfo.RedirectStandardInput = false;   //不重定向输入
        startInfo.RedirectStandardOutput = true;   //重定向输出
        startInfo.CreateNoWindow = true;     //不创建窗口
        process.StartInfo = startInfo;
        try
        {
         if (process.Start())       //开始进程
         {
          if (milliseconds == 0)
           process.WaitForExit();     //这里无限等待进程结束
          else
           process.WaitForExit(milliseconds);  //这里等待进程结束,等待时间为指定的毫秒
          output = process.StandardOutput.ReadToEnd();//读取进程的输出
         }
        }
        catch
        {
        }
        finally
        {
         if (process != null)
          process.Close();
        }
       }
       return output;
      }