如何释放被占用端口

时间:2024.4.27

Windows下如何查看被占用的端口号及如何释放被占用的

端口号

我不太喜欢迅雷这款软件的一点是,迅雷首选的会去占用80端口。下面一个小例子说明如何在windows上查看被占用的端口号,以及如何释放这些被占用的端口号。 在windows命令行窗口下键入如下命令:

netstat -aon

在Local Address下面可以看到被占用的端口号情况。比如上图中80端口被PID为3096的进程占用了。

假如是希望查找指定的端口号被占用情况,比如查找80端口被占用的情况,可以使用如下命令:

netstat -aon | findstr "80"

此命令就会查找到端口号中包含"80"的端口占用情况,如下图:

如何释放被占用端口

知道了占用80端口号的进程是PID为3096的进程,用下面的命令来查看具体的该进程的名称,使用如下命令:

tasklist | findstr "3096"

假如这个进程占用了你的端口号,那么用这个方法干掉它。

用Ctrl+Alt+Delete调出windows任务管理器窗口,可以直接通过名称找到这个占用的进程,然后选择结束进程。也可以通过PID号找到这个进程。点击<查看>-><选择列>,勾选<PID(进程标识符号)>,找到并结束进程。

如何释放被占用端口

如何释放被占用端口


第二篇:COM端口被占用


COM端口被占用(在使用中)的问题

1.打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter

把ComDB删除后重新尝试即可!(注:这样会重建所有COM口)。如果还不行,重启电脑!

2.另:到注册表下HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM将多余的COM口删除即可

3.另外还可以看看集成的Modem是否占用了你的这个串口。

打开“控件面板”中的“电话/调制解调器选项”,在“调制解调器”选项卡中是否有一个连接占用着这个串口(如COM1)

解决方法:

如果有连接占用这个串口,直接删除这个连接,重新启动电脑,问题解决。

或者看看详细原因:

1、用安全模式启动,用系统自带的通讯中的“超级终端”测试串口(COM1), 这时同样报错,不过错误信息更详细了,如下:

******错误信息********

Windows 汇报了一个TAPI错误(80000048)。

请用“控件面板”中的“电话/调制解调器选项”

图标来确认调制解调器安装得是否正确。

**********************

2、然后把电脑正常启动了。

打开“控件面板”中的“电话/调制解调器选项”,

发现在“调制解调器”选项卡中有一个连接占用着这个串口(COM1), 于是马上删除这个连接。

再用“超级终端”测试串口(COM1),不报错了,

表示与串口(COM1)通讯正常。

3、把串口设备连接到串口(COM1)上,用相关软件与设备通讯,正常,问题解决。

关于使用蓝牙设备时COM口被占用问题

由於windows莫名其妙的registry原因,很多用户发现,在安装蓝牙管理软件之後,对应的蓝牙虚拟端口居然变成COM9,甚至是COM13或更高,导致与许多应用程序,如手机同步软件,PDA同步软件无法使用 ,多次重新安装蓝牙管理软件只会让状况更恶化..

解决方案如下(执行下列步骤之前,请务必卸载蓝牙管理程序,并重新开机)

1.在Windows系统,按开始>执行>输入cmd,按回车

2.出现命令字符视窗之後,输入

set DEVMGR_SHOW_NONPRESENT_DEVICES=1

按回车

devmgmt.msc

按回车

3.然后在设备管理器点击>查看>显示隐藏的设备

您现在能能删除多余的端口了,删除完毕之後,请务必重新开机

4.重新安装蓝牙管理软件

5.如果您想永久性投入这个环境变量到XP, 到我的电脑>点选之後,按鼠标右键>属性>高级>环境变量

在系统变量里面,按"新建",在"变量名"里面填入"

DEVMGR_SHOW_NONPRESENT_DEVICES" ,变量值填入"1"

参考:

彻底解决COM端口被占用(在使用中)问题的办法

如何释放被占用的COM口?

清理COM端口被占用(在使用中)问题的办法

编程方面:

如何知道COM端口在使用中

假如机器上原来有两个COM口,COM1和COM2

安装了一个USB设备后,这个USB设备使用了VCP(virtual com port)把COM3占用了,

当我安装另一个新设备时,我如何知道哪些COM口已被分配呢?

通过设备管理器无疑是可以看出来,那如何编程实现呢?

uses

Windows, SysUtils, Registry, Math;

const

n_MaxComPortCnt = 256;

sKey_COMNameArbiter = '/System/CurrentControlSet/Control/COM Name Arbiter/';

sKey_NameComDB = 'ComDB';

resourcestring

sErr_OpenRegKey = 'Failed to open register key: %s';

sErr_WrongComPortName = 'Wrong COM port name: %s';

sErr_ProcNA = 'Processing not available for Com Port: %s'; function CalComPortIndex(const AComPortName: Integer): Integer; var

QT, Res: Integer;

begin

// Each 8 ports per Byte.

QT := AComPortName div 8;

Res := AComPortName mod 8;

if QT = 0 then

begin

// 01..07

Result := AComportName;

end else begin

if Res = 0 then

begin

// 08, 16, 32...

Result := 8;

end else begin

Result := Res;

end;

end;

end;

function CalByteIndex(const AComPortName: Integer): Integer;

begin

// Each 8 ports per Byte.

Result := 0;

if AComPortName > n_MaxComPortCnt then Exit;

Result := (AComPortName div 8) + 1;

end;

function ComPortInstalled(AComPortName: string): Boolean;

var

nName, Len: Integer;

bIdx, pIdx, Flags: Integer;

Reg: TRegistry;

FlagBuff: array[1..n_MaxComPortCnt] of Byte; // Each 8 ports per Byte. Value: Cardinal;

begin

(*

* Binary value: 31 00 00 00 00 00 00 00 .... (32 byte in total) * 0 0 0 1 1 1 1 1

* 8th 7th 6th 5th 4th 3rd 2nd 1st (Each bit for one port) *

* COM1 - COM5 installed(occupied), but it doesn't tell they are busy! *)

Len := Length(AComPortName);

nName := StrToIntDef(Copy(AComPortName, 4, Len-3), 0);

if nName = 0 then

raise Exception.CreateFmt(sErr_WrongComPortName, [AComPortName]); pIdx := CalComPortIndex(nName);

bIdx := CalByteIndex(nName);

if bIdx = 0 then

raise Exception.CreateFmt(sErr_ProcNA, [AComPortName]);

Reg := TRegistry.Create;

try

Reg.RootKey := HKEY_LOCAL_MACHINE;

FillChar(FlagBuff, Length(FlagBuff), 0);

if Reg.OpenKey(sKey_COMNameArbiter, False) then

Reg.ReadBinaryData(sKey_NameComDB, FlagBuff[1], SizeOf(FlagBuff)) else

raise Exception.CreateFmt(sErr_OpenRegKey,

[sKey_COMNameArbiter]);

finally

Reg.Free;

end;

Flags := FlagBuff[bIdx];

Value := Round(Power(2, pIdx-1));

Result := (Flags and Value) = Value;

end;

更多相关推荐:
如何查询端口号被哪个程序占用

如何查询端口号被哪个程序占用以下文章主要以80端口号为例如果想知道其他的端口号也可以使用该方法quot到底是谁占用了80端口该怎么查怎么终止它quot这里就简单讲解一下在windows下如何查看80端口占用情况...

查看端口号被占用情况

第一步打开运行窗口输入cmd回车第二步在窗口中输入netstatnaoFINDSTR端口号其中FINDSTR与端口号之间必须要有空格第三步回车后如果商品被占用将有相关信息显示在这个信息中对应相应的端口号有相应的...

如何查看端口号被哪个程序占用了

如何查看端口号被哪个程序占用了一1Cmd输入netstatano可以看到2例如我查80端口被什么占用了对应的进程id是3600再输入tasklist来查看pid3600是哪个进程什么程序在跑3可以很快看到是to...

彻底解决COM端口被占用

彻底解决COM端口被占用在使用中问题的办法如何删除电脑中使用过的COM端口我的电脑经常使用蓝牙手机数据线之类的东西每次装一个新的设备windows就自动分配一个新的虚拟com口现在插上新的设备都用到COM25了...

关于tomcat启动端口号被占用问题解决

有时候把在myeclpise项目部署到tomcat中的时候会莫名其妙的发现tomcat启动不了换成是myeclpise自带的tomcat启动还是无法成功启动看看控制台显示的错误信息有时候会看到javanetBi...

tomcat 8080端口被占用解决方法

tomcat因端口占用无法启动解决方法20xx0322223711分类技术分享标签tomcat端口占用解决方法8080jsp字号大中小订阅嗯嗯记录一下这个问题吧应该很多人会遇到其实端口占用问题不仅是tomcat...

网络端口被占用解决方法

点击开始菜单gtgt点击运行gtgt输入quotcmdquot回车gtgt在弹出的dos提示符下输入netshwinsockreset命令回车回车后提示成功地重置Winsock目录您必须重新启动计算机才能完成重...

解决端口被占用

第一步第二步输入cmd并点击确定第三步输入命令netstatano并回车找到占用端口进程的pid第四部打开任务管理器右击任务栏选择任务管理器并在菜单项查看的选项中点击选择列查看gt选择列gtpid打钩在上面pi...

彻底解决COM端口被占用(在使用中)问题的办法

彻底解决COM端口被占用在使用中问题的办法打开注册表HKEYLOCALMACHINESYSTEMCurrentControlSetControlCOMNameArbiter把ComDB删除后重新尝试即可注这样会...

查询电脑windows 端口被占用的情况

开始运行cmd进入命令提示符输入netstatano即可看到所有连接的PID之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项可以在任务管理器中选quot查看quotquot选择列qu...

彻底解决COM端口被占用

彻底解决COM端口被占用在使用中问题的办法打开注册表HKEYLOCALMACHINESYSTEMCurrentControlSetControlCOMNameArbiter把ComDB删除后重新尝试即可注这样会...

彻底解决COM端口被占用(在使用中)问题的办法

彻底解决COM端口被占用在使用中问题的办法打开注册表HKEYLOCALMACHINESYSTEMCurrentControlSetControlCOMNameArbiter把ComDB删除后重新尝试即可注这样会...

端口号被占用(48篇)