Window平台下通过cmd命令查看端口占用、查看进程、结束进程

          Window平台下通过cmd命令查看端口占用、查看进程、结束进程

一、概述:

        (更好的阅读体验,请移步我的个人博客)在学习进程间通讯的时候,我们知道有一种通讯方式叫做socket。对于跨主机之间的进程通讯,这种方式更为常见,比如常见的基于B/S架构的web服务就是这种通讯方式的一个常见应用,客户端通过  IP+PORT 找到位于服务端上监听此端口的进程,从而与该进程进行数据通讯。再如我们常见的MySQL数据库程序,通常我们会先安装mysql应用程序,设置其启动时监听的端口,这样,当我们启动这个程序的时候,mysql服务进程就会绑定相关的端口(测试的时候常用的是3306端口),进而可以接收来自于这个端口的请求,进行相关的处理,反馈。对于这类程序,有时候会出现由于端口被占用导致启动失败的情况,比如电脑上的一个进程已经绑定了3306端口,这个时候如果再启动mysql程序,就会出现端口被占用的错误。这个时候简单一些的处理方式是可以修改mysql使用的端口号,或者结束占用3306端口的进程。

二、查看端口的占用情况:

         打开电脑上面的一个终端,如cmd(开始-运行-cmd),键入  netstat -ano 命令,这时候就可以查看所有的端口占用情况,如下图所示:

 从图中可以看到 3306 被 pid为3608的进程占用。如果知道被占用端口号的话,也可以直接使用 netstat -ano|findstr "3306" 命令,如下图所示:

接着,我们可以使用 tasklist 命令查看pid为3608的进程到底是什么,命令:tasklist|findstr 3608 ,如下图所示:

 可以看到pid为3608的进程是mysqld,这时候如果需要结束此进程,可以使用:taskkill /f /t /im 进程名称 命令,也可以在任务管理器中结束。

三 总结:

 1,socket是一种进程间通讯的方式,使用的话需要知道进程所在的主机IP和绑定的PORT;

 2,查看端口被某一进程占用可以使用 netstat -ano|findstr "port" 命令,此命令可以找到占用进程的pid,然后使用 tasklist|findstr "pid" 找到进程名称,然后使用 taskkill /f /t /im 进程名称  结束进程。

原文地址:https://www.cnblogs.com/fsg6/p/13690161.html