检测端口可用性
private int CheckPortUsing()
{
int port = 20000;
bool isgoto = false;
begin:
Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Verb = "runas"; //管理员启动
process.StartInfo.CreateNoWindow = true; //不显示程序窗口
process.StartInfo.UseShellExecute = false; //使用操作系统shell启动
process.StartInfo.RedirectStandardOutput = true; //由调试程序获取输出信息
process.StartInfo.RedirectStandardInput = true; //接受来自调试程序的输入信息
process.StartInfo.RedirectStandardError = true; //重定向标准错误输出
process.Start();
process.StandardInput.WriteLine("netstat -ano|findstr " + port + " &exit");
process.StandardInput.AutoFlush = true;
string output = process.StandardOutput.ReadToEnd();
foreach (var msg in output.Split(new[] { "TCP" }, StringSplitOptions.None))
{
if(msg.ToUpper().Contains("LISTENING") && !msg.ToUpper().Contains("UDP"))
{
port += 1;
isgoto = true;
break;
}
}
process.WaitForExit();
process.Close();
if (isgoto)
{
isgoto = false;
goto begin;
}
Console.WriteLine(output);
return port;
}
浙公网安备 33010602011771号