您的位置:首页 > 理论基础 > 计算机网络

遇到的问题---Windows socket error: 通常每个套接字地址(协议/网络地址/端口)只允许使用一次

2013-07-09 12:35 741 查看
提示说明端口已经被占用了。

这个时候 我们想知道是哪个程序占用了我们的端口 可以用以下命令:

比如我要查8500端口

Linux篇:

使用命令:lsof -i:被占用的端口号

sudo lsof -i:8500

会显示出程序,及程序的PID,执行:kill 程序的PID 。

如果提示没有安装lsof这个命令,CentOS可以执行:yum install lsof 安装,Debian可以执行:apt-get install lsof 安装。

Windows篇:

Windows上的工具比较多,如Active Ports,如果手头上没有现成的工具可以用命令:netstat -aon|findstr 8500

最后一列为程序PID,再通过tasklist命令:tasklist | findstr 4460

再通过任务管理结束掉这个程序就可以了

任务管理器在进程中没找到相应的pid进程有可能是你没有权限。


Windows 2000/XP两个杀死进程的命令

1.根据进程名查杀:taskkill命令在Windows XP系统下,可用taskkill命令实现运行 taskkill /im conime.exe 可强行杀死conime.exe进程。要不了多久,系统就会自动返回命令执行结果。

具体命令格式,请查看系统帮助----"参考"。
2.根据PID(进程标志符)查杀:ntsd命令  taskkill命令只对部分进程有效,遇到一些更“顽固”的进程,可能就无济于事了。

使用ntsd命令可强行杀死绝大部分进程。该命令除System进程、SMSS.EXE进程、CSRSS.EXE进程不能“对付”。

但是在使用该命令杀死病毒进程之前,需要先查找到对应病毒进程的具体进程号。 例如,发现某个进程的PID为“444”,运行“ntsd -c q -p 444”命令,可杀死这个进程。 

NTSD命令详解 

1. ntsd -c q -p PID 
2. ntsd -c q -pn ImageName 比如:ntsd -c q -pn qq.exe 

-c是表示执行debug命令 
q表示执行结束后退出(quit) 

-p 表示后面紧跟着是你要结束的进程对应的PID 

-pn 表示后面紧跟着是你要结束的进程名(process_name.exe 比如:QQ.exe,explorer.exe 等等,值得注意的是后缀名.exe是不可省略的,否则系统会告诉你“不支持此接口”)

只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd从 2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动 就获得了debug权限,从而能杀掉大部分的进程。

用ntsd -c q -p pid  出现'ntsd'不是内部或外部命令

有些系统中没有这个命令文件,从xp中把ntsd.exe和ntsdexts.dll复制到system32中就行了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐