COM端口被占用

合集下载

蓝牙模块通信时出现COM口冲突的问题如何解决

蓝牙模块通信时出现COM口冲突的问题如何解决

蓝牙模块通信时出现COM口冲突的问题如何解决?
当PLC下载程序时弹出COM口被占用或冲突的问题,可能是因为您的其他设备如蓝牙适配器或是串口调试工具软件占用了相关COM口。

遇到这样的问题,关掉串口调试工具的窗口和其他一些可能会占用COM口的软件,如果还是不行的话,可以先卸载USB驱动程序后再重装USB驱动程序,电脑重新启动后就又可以通信成功了。

具体步骤如下:
首先右键点击“我的电脑”,选择“管理”后弹出计算机管理的窗口,再点击“设备管理器”(如图1),在右边的窗口中选择端口(COM 和MPT)(如图2)
图1
图2
在图2中,我们可以看到目前蓝牙模块主机所用的端口,右键点击该端口信息,选择“属性”,弹出如下对话框(如图3),
图3
在“驱动程序”一栏下面我们可以看到各种操作,我们可以点击“卸
载”即可将该端口的USB驱动程序卸载。

当再次连接USB时,电脑就会提示我们安装相应的驱动程序,可能在驱动程序重装之后还是跟PLC通信连接不上,也许将电脑重新启动之后就可以与PLC正常通信了。

关于端口被占用的解决办法

关于端口被占用的解决办法

关于端⼝被占⽤的解决办法
今天开机发现⼀直使⽤的ssr启动时报错,显⽰1080端⼝被占⽤,如下图,估计是可能被什么软件影响了,或者由于系统更新导致
对于这种问题,⾸先是找到这个端⼝被哪个程序占⽤,然后关闭就⾏了,但是指标不治本,⽐较好的办法就是更改配置,使⽤闲置端⼝号。

分享⼏个命令,管理员⽅式打开cmd窗⼝
查看某个端⼝被占⽤:
netstat -aon|findstr "8080"
可以看到8080端⼝是在被3404进程使⽤,然后打开任务管理器,点击详细信息,关闭占⽤这个端⼝的进程
但发现这也是我正在使⽤的应⽤程序,那只能使⽤另外的办法,打开ssr的配置⽂件[gui-config.json],更改⾥⾯local port为系统未被占⽤的端⼝号,
那么使⽤命令查看系统未被占⽤的端⼝:
netsh interface ipv4 show excludedportrange protocol=tcp
如图所⽰,随意找⼀个不在上图范围之内的即可,⽐如我更改的是1010,然后保存⽂件,重启ssr即可正常使⽤!。

如何删除电脑中使用过的COM端口

如何删除电脑中使用过的COM端口

如何删除电脑中使用过的COM端口
最近公司的电脑经常使用蓝牙、手机数据线之类的东西,每次装一个新的设备,windows 就自动分配一个新的虚拟com口,现在插上新的设备都用到COM25了,查看设备管理器-端口-com25属性-端口设置-高级-com端口号,发现从3~83全是“使用中”,怎么能把前面的这些删除掉?就算不在使用中,也会占用,一般情况下手机nusem软件只认100端口以内,所以需要删除,手工删除比较麻烦。

以上问题的彻底解决办法:
打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter
把ComDB删除后重新尝试即可!(注:这样会重建所有COM口)。

脚本代码如下
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter] "ComDB"=-
如果还不行,重启电脑!。

电脑串口(com)被占用问题

电脑串口(com)被占用问题

电脑串⼝(com)被占⽤问题
最近使⽤串⼝与设备通信。

这个电脑⼀个有6个COM⼝,都要使⽤。

还有⾃带⼀个华为的4G通信模块,这个模块需要虚拟出4个COM⼝。

使⽤之前的Gost系统(只有1个物理COM版本的),导致物理COM⼝与华为的COM⼝有冲突
重新使⽤纯净版做了⼀版系统,解决了⼀部分问题,程序可以正常使⽤。

但是有些电脑虽然COM⼝部分没有冲突,但是打开程序的时候会提⽰ com1不存在或者已被占⽤
这个COM1⼝我是⽤来被动接收外⾯传来的信号,外⾯不停的传,我接收数据然后分析。

最奇怪的是,当我不外接信号时,这个COM⼝是正常的。

但是当我接到上⾯的时候他就经常提⽰COM⼝被占⽤(⽤其他串⼝调试⼯具也⼀样)。

⽽且当我把他换到其他COM⼝时,也是⼀样。

我就懵了,我觉得可能时这台设备上的问题。

但是当我把这个COM1⼝禁⽤后启⽤,⼤部分情况COM⼝⼜恢复了正常。

这说明不是外部设备引起的,找了许多⽹上的⽅案试了。

下⾯这个⽐较有效:
我这⾥时COM1⼝出现的问题,我把COM⼝卸载了,然后重启,让电脑⾃⼰找到COM⼝。

这个电脑找到了COM1,然后我发现有个驱动失效了,就是下⾯这个
难道是这个东西占⽤了COM⼝,不管了还是把他禁⽤吧。

禁⽤之后,试了重启,断电,COM⼝正常了.
查了⼀下,这个东西确实能引起COM⼝混乱:
再验证⼀段时间!。

Win10电脑提示端口本占用怎么办?

Win10电脑提示端口本占用怎么办?

Win10电脑提示端口本占用怎么办?
许多小伙伴正在使用电脑的时候,电脑突然提示端口被占用,但是又不知道是怎么回事,明明之前使用的时候好好地,其实想要解决问题也非常的简单,下面我就带着大家一起看看怎么解决吧!
解决端口被占用的方法
1、win+R,cmd回车
2、输入netstat -ano命令查看所有端口被占用情况,比如关闭端口号为8888的端口,找到8888端口号对应的PID
3、点击鼠标右键,打开任务管理器
4、点击详细信息
5、PID对
应的列就是端口号,点击PID可以将端口倒序或正序排列,如果端口号小就正序,端口号大就倒序
6、找到端口对应的应用
7、右键结束任务即可
以上就是系统之家为您带来的解决端口被占用的方法,希望可以解决掉您的困惑。

想了解更多的问题请收藏系统之家哟。

欢迎您的查看。

修复端口被占用问题

修复端口被占用问题

方法1: 修复Winsock LSP 安装瑞星卡卡或者360安全卫士。

在360安全卫士中,点击“高级”标签,找到“文件粉碎”旁的“LSP修复工具”,有时需要修复两次才可以。

修复后重新启动计算机(这里有“修复Winsock LSP”按钮和“修复Winsock LSP到初始状态”按钮,点击“修复Winsock LSP到初始状态”按钮,如果使用修复Winsock LSP后无法访问网络,则可将Winsock LSP恢复到安装360安全卫士时的初始状态,以确保网络链接可用。

瑞星杀毒软件同样有LSP修复功能。

点击“实时防护”旁边的“高级工具”标签,点击左侧的“LSP修复”图标,修复即可。

方法2: 开始菜单→运行→输入regedit,确定打开注册表→找到\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinSock2\DrcomPack etCapture,分别双击1001、1002,看它们的值是否乱码,若是乱码请手工改为%SystemRoot%\system32\mswsock.dll,确定后关闭注册表。

方法3: 在开始——运行——输入“CMD”然后输入:netsh winsock reset (注意此命令之间有2个空格),然后重新启动电脑。

方法4 : 使用WinSockFix软件进行修复。

我同学的遇到的情况,使用前面3种方法都没效。

我使用WinSockFix修复后,重启,登录成功,问题似乎都解决了。

然而,没想到的是同学在一次关机后,再次开机居然问题依旧。

这时我就怀疑是杀毒软件和防火墙在作怪了。

卸掉这些,换了杀毒和防火墙,使用WinSockFix进行修复。

重启几次,一切都是正常了。

总结:最后我使用net命令进行修复后重起,pci简易通讯控制器黄色叹号消失,搞定,看来端口占用有很多种情况。

端口号被占用

端口号被占用

端口号被占用端口号在计算机网络中扮演了非常重要的角色,它是一种通过网络进行通信的抽象标识。

在网络通信时,计算机使用特定的端口号来区分不同的进程或服务。

但是在实际应用中,我们可能会遇到端口号被占用的情况,本文将探讨其原因及解决方法。

一、端口号的作用在计算机网络中,端口号是网络应用程序中的唯一标识符。

它是一个16位的整数,范围在0~65535之间,其中0~1023是系统保留端口,一般情况下不能被普通用户所使用。

通过端口号,不同计算机上的应用程序可以进行通信,比如Web服务器使用80端口,邮件服务器使用25端口等等。

二、端口号被占用的原因当我们想要使用一个已被占用的端口号时,就会出现端口号被占用的情况。

端口号被占用的原因主要有以下几点:1.进程未正常退出如果在一个进程退出后,该进程使用的端口号没有及时释放,那么这个端口号就会一直被占用。

这种情况多发生在程序崩溃或者非正常退出时。

2.同一个应用程序启动多次当启动同一个应用程序多次时,如果所有实例都使用同一个端口号,那么后启动的实例就会出现端口号被占用的情况。

这时候需要手动修改实例使用的端口号,以避免端口号冲突。

3.网络服务启动冲突有些网络服务,比如Web服务器、FTP服务器等,需要占用某些特定的端口号。

当多个服务同时启动时,如果端口号发生冲突就会出现端口号被占用的情况。

这时候需要关闭其中一个服务或修改其使用的端口号。

4.端口号被恶意占用一些恶意程序或病毒会占用计算机的端口号,以达到某种攻击目的。

这种情况需要使用杀毒软件等工具及时清除恶意程序。

三、端口号被占用的解决方法当出现端口号被占用的情况时,我们可以通过以下方法来解决:1.杀死占用端口的进程如果端口号被占用是因为进程异常退出而导致的,我们可以使用系统自带的任务管理器或者命令行工具kill来杀死该进程,以释放该端口号。

2.修改应用程序使用的端口号当同一个应用程序启动多次导致端口号冲突时,我们可以手动修改应用程序使用的端口号,通过配置文件或者命令行参数等方式来实现。

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

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

彻底解决COM端口被占用(在使用中)问题的办法打开注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\COM Name Arbiter 把ComDB删除后重新尝试即可!(注:这样会重建所有COM口)。

如果还不行,重启电脑!另外还可以看看集成的Modem是否占用了你的这个串口。

打开“控件面板”中的“电话/调制解调器选项”,在“调制解调器”选项卡中是否有一个连接占用着这个串口(如COM1)解决方法:如果有连接占用这个串口,直接删除这个连接,重新启动电脑,问题解决。

或者看看详细原因:1、用安全模式启动,用系统自带的通讯中的“超级终端”测试串口(COM1),这时同样报错,不过错误信息更详细了,如下:******错误信息********Windows 汇报了一个TAPI错误(80000048)。

请用“控件面板”中的“电话/调制解调器选项”图标来确认调制解调器安装得是否正确。

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

打开“控件面板”中的“电话/调制解调器选项”,发现在“调制解调器”选项卡中有一个连接占用着这个串口(COM1),于是马上删除这个连接。

再用“超级终端”测试串口(COM1),不报错了,表示与串口(COM1)通讯正常。

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

由於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"。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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;。

相关文档
最新文档