【端口占用】无法在地址[localhost]和端口[9005]上创建服务器关闭套接字(基本端口[9005]和偏移量[0])

简介: 一直提示端口占用怎么解决?

06-Nov-2021 10:24:46.078 严重 [main] org.apache.catalina.core.StandardServer.await 无法在地址[localhost]和端口[9005]上创建服务器关闭套接字(基本端口[9005]和偏移量[0])
java.net.BindException: Address already in use: bind
at java.base/sun.nio.ch.Net.bind0(Native Method)
at java.base/sun.nio.ch.Net.bind(Net.java:550)
at java.base/sun.nio.ch.Net.bind(Net.java:539)
at java.base/sun.nio.ch.NioSocketImpl.bind(NioSocketImpl.java:643)
at java.base/java.net.ServerSocket.bind(ServerSocket.java:396)
at java.base/java.net.ServerSocket.(ServerSocket.java:282)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:584)
at org.apache.catalina.startup.Catalina.await(Catalina.java:864)
at org.apache.catalina.startup.Catalina.start(Catalina.java:810)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
06-Nov-2021 10:24:46.088 信息 [main] org.apache.coyote.AbstractProtocol.pause 暂停ProtocolHandler["http-nio-8081"]
06-Nov-2021 10:24:46.089 信息 [main] org.apache.catalina.core.StandardService.stopInternal 正在停止服务[Catalina]
06-Nov-2021 10:24:46.178 警告 [main] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads Web应用程序[lyzy-0.0.1-SNAPSHOT]似乎启动了一个名为[logback-1]的线程,但未能停止它。这很可能会造成内存泄漏。线程的堆栈跟踪:[]
06-Nov-2021 10:24:46.184 信息 [main] org.apache.coyote.AbstractProtocol.stop 正在停止ProtocolHandler ["http-nio-8081"]
06-Nov-2021 10:24:46.214 信息 [main] org.apache.coyote.AbstractProtocol.destroy 正在摧毁协议处理器 ["http-nio-8081"]
QQ截图20211106103821.png

具体错误代码如上:这是在服务器上,我用了一个Tomcat端口号被占用的情况,我启动了另一个版本的tomcat,然后部署软件报如上错误,所以,在部署的时候一定看好报错端口号,然后使用以下经常用的命令进行查找。然后kill进程就成功了!

【一定一定看报错端口号!!!】

  1. 查看端口占用

在windows命令行窗口下执行:

netstat -aon|findstr "8080"

TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448

端口“8080”被PID(进程号)为2448的进程占用。

查看端口“8080”被哪个应用占用,,继续执行下面命令:

tasklist|findstr "2448"

tomcat9.exe 2016 Console 0 16,064 K

  1. 关闭进程

2.1 按进程号关闭进程
taskkill /pid 2152

多个时格式为:

taskkill /pid 2152 /pid 1284

2.2 按进程名关闭进程
如要关闭notepad.exe,格式为:

taskkill /im notepad.exe

指定多个时格式为:

taskkill /im notepad.exe /im iexplorer.exe

如果是要关闭所有的,则使用通配符*,即:

taskkill /im *.exe

2.3 有提示的关闭进程
taskkill /t /im notepad.exe
taskkill /t /pid 2152

这个效果是提示后在使用者确定后关闭,有提示框。

2.4 强行终止进程
taskkill /f /im notepad.exe
taskkill /f /pid 2152

  1. 端口状态

3.1 LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。

3.2 ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。

3.3 CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭

3.4 TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。

目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。

3.5 SYN_SENT状态
SYN_SENT状态表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多SYN_SENT的原因。

参考部分文章:https://www.cnblogs.com/rainman/p/3457227.html

目录
相关文章
|
27天前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
|
4月前
|
弹性计算 运维 Linux
云服务器 ECS产品使用问题之如何改变服务器地址
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。
|
4月前
|
网络协议 安全 Linux
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
在IntelliJ IDEA中使用固定公网地址远程SSH连接服务器环境进行开发
94 2
|
4月前
|
网络协议 Linux
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
|
4月前
端口被占用?两步解决端口占用问题
端口被占用?两步解决端口占用问题
208 0
|
5月前
|
网络协议 网络安全 数据安全/隐私保护
如何在IDEA中使用固定公网地址SSH远程连接服务器开发环境(三)
在IDEA中通过固定公网地址SSH远程连接服务器开发环境,需要配置固定TCP端口以避免地址随机变化。首先,升级cpolar至专业版及以上,然后在官网保留一个固定TCP地址。进入cpolar管理界面,编辑隧道信息,将保留的固定地址填入,更新隧道。最后,在IDEA中新建SSH连接,输入固定地址和端口,验证连接。成功后,即可稳定远程开发。
|
5月前
|
网络协议 Java Linux
如何在IDEA中使用固定公网地址SSH远程连接服务器开发环境(二)
在IDEA中通过Cpolar实现固定公网地址SSH远程连接到Linux服务器开发环境,主要步骤包括:1) 在Linux服务器上安装Cpolar,使用一键脚本进行安装和启动服务;2) 登录Cpolar Web UI,创建隧道,指定隧道名称、协议、本地地址(SSH默认端口22)、临时随机TCP端口和中国地区;3) 使用生成的公网TCP地址在IDEA中新建SSH连接,输入该地址和端口,完成远程连接。这种方式允许开发者在任何地方通过固定的公网地址进行远程开发,而无需公网IP。
|
5月前
|
安全 网络协议 Linux
如何在IDEA中使用固定公网地址SSH远程连接服务器开发环境(一)
该文介绍了如何通过IDEA设置远程连接Linux服务器的步骤,使用Cpolar内网穿透工具实现在没有公网IP的情况下进行远程开发。主要内容包括检查Linux SSH服务、本地连接测试、在Linux上安装Cpolar、创建远程连接的公网地址、公网远程连接测试以及固定连接公网地址。文章还提供了相关截图辅助说明,适用于IDEA2023.2.5版本。
|
5月前
|
网络协议
【已解决】找不到某服务器 IP 地址
【已解决】找不到某服务器 IP 地址