昨天启动ActiveMQ时,竟然报了端口被占用的错误,很是吃惊,最近没有安装其他程序,怎么端口被莫名的占用了呢?前几天还好好的启动来着的,于是乎打算查查看是什么情况。
错误
Failed t bind to server
socket:tcp://localhost:61616
due to : java.net.BindException
查找分析
首先想的是是不是有其它amq的进程在运行,于是检查了任务管理器没有发现amq的进程,服务中也没有相关的服务在运行。
于是上第二部,使用windows中的netstat命令可以查看端口占用情况。
通过netstat -aon | findstr "61616" 查找port被谁占用了,但是一直没有找到。
灰心之余求助百度,有人说是 Internet Connection Sharing (ICS)服务占用,kill了这个服务,果然正常了。
network connecting sharing服务
为什么呢
网上解答
windows有个服务叫“Internet Connection Sharing”,也就是常说的ICS服务,这个服务在平常的情况下可以被禁用,或者被卸载,从而提高电脑的运行速度。但是如果你想把自己的电脑当作无线wifi热点来使用的话,那么没有这个服务是不行的,因为这个服务为这个组件的网络提供DNS域名解析、DHCP ip地址分配,以及NAT网关的作用,如果这个时候禁用这个服务,那么导致这个组件的网络中的手机或者电脑,不能被分配ip地址,不能进行域名解析等等。也就是说,ics服务是创建热点所必须的服务。
实际情况
大葱哥的电脑关闭该服务后热点还正常可用,并没有像上面说的是热点的必须服务。
网友评论