public static void StopProcess()
{
string port = "5000";
Process pro = new Process();
// 设置命令行、参数
pro.StartInfo.FileName = "cmd.exe";
pro.StartInfo.UseShellExecute = false;
pro.StartInfo.RedirectStandardInput = true;
pro.StartInfo.RedirectStandardOutput = true;
pro.StartInfo.RedirectStandardError = true;
pro.StartInfo.CreateNoWindow = true;
// 启动CMD
pro.Start();
// 运行端口检查命令
pro.StandardInput.WriteLine("netstat -ano");
pro.StandardInput.WriteLine("exit");
// 获取结果
Regex reg = new Regex(@"\s ", RegexOptions.Compiled);
string line = null;
while ((line = pro.StandardOutput.ReadLine()) != null)
{
line = line.Trim();
if (line.StartsWith("TCP", StringComparison.OrdinalIgnoreCase))
{
line = reg.Replace(line, ",");
string[] arr = line.Split(',');
if (arr[2].EndsWith(":" + port))
{
KillProcess(Int32.Parse(arr[13]));
}
}
}
}
public static void KillProcess(int processName) //调用方法,传参
{
try
{
// // Process[] thisproc = Process.GetProcessesByName(processName);
Process thisproc = Process.GetProcessById(processName);
if (!thisproc.CloseMainWindow()) //尝试关闭进程 释放资源
{
thisproc.Kill(); //强制关闭
}
}
catch //出现异常,表明 kill 进程失败
{
}
finally
{
}
}
C# 根据端口关闭线程
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 查看占用端口,端口号不加英文引号也行netstat -ano|findstr "8801"netstat -ano...
- 1 概述 1.1 课程设计目的 加深TCP/IP协议的理解,掌握TCP四次握手机制,同时熟悉socket编程。 1...