windows下端口占用处理工具

一、通用方法

经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,笔者在最近使用tomcat时,老是会遇到这种端口占用的问题,如何知道谁占有了我们需要的端口,很多人都比较头疼,以下是通用方法:

在windows命令行窗口下执行: 

1.查看所有的端口占用情况

C:\>netstat -ano
  协议    本地地址                     外部地址               状态                   PID
  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236
  TCP    127.0.0.1:5679         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:7438         0.0.0.0:0              LISTENING       4168
  TCP    127.0.0.1:8015         0.0.0.0:0              LISTENING       1456
  TCP    192.168.3.230:139      0.0.0.0:0              LISTENING       4
  TCP    192.168.3.230:1957     220.181.31.225:443     ESTABLISHED     3068
  TCP    192.168.3.230:2020     183.62.96.189:1522     ESTABLISHED     1456
  TCP    192.168.3.230:2927     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2929     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2930     117.79.91.18:80        ESTABLISHED     4732
  TCP    192.168.3.230:2931     117.79.91.18:80        ESTABLISHED     4732
2.查看指定端口的占用情况
C:\>netstat -aon|findstr "9050"
  协议    本地地址                     外部地址               状态                   PID
  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)

3.查看PID对应的进程
C:\>tasklist|findstr "2016"
 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K

P:很清楚吧,tor占用了你的端口。
4.结束该进程

C:\>taskkill /f /t /im tor.exe

以上转自:http://www.iteye.com/topic/1117270

二、描述与运行截图

  尽管上述方法能够解决这个问题,但是过于繁琐,而且CMD下的那几行命令实在难记住,笔者便写了这个exe。这玩意的实现比较简单,主要是调用了cstdlib库中的system()函数,逻辑也十分的清楚。虽然比较简单,但是感觉还是十分的实用,因此拿出来于大家分享。好吧,其实主要是给自己留个备份。

以下是笔者的运行截图:

  

三、源代码

  以下是实现的源代码(转载请注明出处),一个需要注意的点是:windows 为所有进程和线程分配的 ID 都是 4 的倍数。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstdlib>
 4 /*
 5 #windows端口占用处理工具
 6 #作者:大大维
 7 #2017/6/23
 8 */
 9 using namespace std;
10 int main()
11 {
12     system("title windows端口占用处理工具");//设置cmd窗口标题
13     system("color 2B");
14     char cmd1[64]="netstat -aon|findstr \"";
15     char cmd2[64]="tasklist|findstr \"";
16     char cmd3[64]="taskkill /f /t /im ";
17     cout<<"请输入被占用的端口号:"<<endl;
18     unsigned duankou=0;
19     cin>>duankou;
20     sprintf(cmd1,"%s%d\"",cmd1,duankou);
21     system(cmd1);
22
23     // windows 为所有进程和线程分配的 ID 都是 4 的倍数
24     cout<<"请输入端口占用进程的PID(最后一列),或者直接结束(输入非4的倍数,如1)";
25     unsigned pid=1;
26     cin>>pid;
27     if(!(pid%4))
28     {
29         sprintf(cmd2,"%s%d\"",cmd2,pid);
30         system(cmd2);
31     }
32     else
33     {
34         return 0;
35     }
36     cout<<"你想结束这个进程吗?(y or n)"<<endl;
37     char ch=‘n‘;
38     cin>>ch;
39     if(ch==‘y‘)
40     {
41         cout<<"请输入进程名(第一列),或者直接结束(输入0)"<<endl;
42         char jingchengming[16];
43         cin>>jingchengming;
44         if(ch!=‘0‘)
45         {
46             sprintf(cmd3,"%s%s",cmd3,jingchengming);
47             system(cmd3);
48             cout<<"已经结束了该进程"<<endl;
49         }
50     }
51     getchar();
52     return 0;
53 }

  另外,大家在关闭进程的时候要慎之又慎,免得关闭了一些不必要的进程,造成严重的后果。

时间: 2024-10-19 10:18:30

windows下端口占用处理工具的相关文章

Windows下端口占用查看

假如我们需要确定谁占用了我们的80端口 1.Windows平台在windows命令行窗口下执行:C:\>netstat -aon|findstr "80" TCP     127.0.0.1:80         0.0.0.0:0               LISTENING       2448看到了吗,端口被进程号为2448的进程占用,继续执行下面命令:C:\>tasklist|findstr "2448" thread.exe         

如何查看Windows下端口占用情况---开发必备

1.查看端口和进程号 在开始-运行,输入CMD打开命令行界面,输入命令 netstat -ano | findstr "80" (注80是你想要看查看的端口号) 就会输出包含80端口使用的情况 具体对应的行是 协议    本地地址        外部地址          状态          PID 2.找到端口号后,查看使用该端口的进程 如果想看某个进程具体是哪个进程可以使用下面命令 tasklist | findstr "5584"(注 5584是进程的id

Window和Mac下端口占用情况及处理方式

1. 在Mac下端口占用的情况: 找到占用的进程并杀掉: 1.查看端口占用进程 sudo lsof -i :8880 可以看到进程的PID 2.杀掉进程 sudo kill -9 4580(4580为PID) 3.在window下端口占用情况: Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\***>netstat -aon|findstr "8732" TCP

Windows下RSA密钥生成工具openssl

点击下载 1. 生成原始 RSA私钥文件 private_key.pem openssl genrsa -out private_key.pem 1024 2. 将原始 RSA私钥转换为 pkcs8格式 openssl pkcs8 -topk8 -inform PEM -in private_key.pem -outform PEM -nocrypt -out rsa_private_key.pem 3. 生成 RSA公钥 rsa_public_key.pem openssl rsa -in p

怎么查看Windows下端口的占用状态

安装apache时,有时会出现端口被占用的情况,这时可以先查看下哪些端口已经被占用了,就可以用这个命令: netstat -an 查看本机的端口占用情况: 如果输入此命令时提示”不是内部命令或者外部命令“等问题,只需要进入到系统的system32文件夹下即可,命令是:cd c:\WINDOWS\system32\ 此时再输入命令即可解决.

windows 下查看 占用8080端口的进程

Windows下查看进程及结束进程命令 1)查看占用8080端口的进程号 >netstat –aon | findstr “8080” 结果:TCP    0.0.0.0:8080           0.0.0.0:0              LISTENING       3500 可知,进程号为3500的进程占用了8080端口 可以使用命令 tasklist | findstr “3500”进一步查看3500进程的具体信息. > tasklist | findstr “3500” 结果

WINDOWS 下端口被占用时找出程序

#1.查看所有的端口占用情况 #开始-运行-CMD    输入:C:\>netstat -ano Active Connections Proto  Local Address          Foreign Address        State           PID  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       1104  TCP    0.0.0.0:135            0.0

windows查看端口占用以及关闭相应的进程

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列" 经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用 假如我们需要确定谁占用了我们的9050端口 1.Windows平台 在windows命令行窗口下执

windows查看端口占用

1.Windows平台在windows命令行窗口下执行:1.查看所有的端口占用情况 C:\>netstat -ano 协议    本地地址                     外部地址               状态                   PID TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236  TCP    127.0.0.1:5679         0.0.0.0:0