如何检查端口是否正在被监听?
时间: 2024-12-24 07:31:34 浏览: 14
在操作系统级别上,你可以使用命令行工具来检查端口是否被监听。以下是几种常见操作系统的检测方法:
1. **Linux/Unix**:
- 使用`netstat`命令:`netstat -tuln | grep :<port_number>`
- 或者`lsof`:`lsof -i :<port_number>`
2. **Windows**:
- 打开命令提示符(`cmd`),输入`netstat -ano | find ":<port_number>"`
- 或者使用`telnet`, 如果尝试连接到该端口并显示连接失败,则说明被占用。
3. **Python** (通过socket模块):
```python
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind(('localhost', <port_number>))
print(f"Port {port_number} is in use.")
except PermissionError:
print(f"Port {port_number} is not in use.")
finally:
s.close()
```
4. **Java** (通过Socket类):
```java
try {
ServerSocket ss = new ServerSocket(<port_number>);
ss.close();
System.out.println("Port " + port_number + " is available.");
} catch (IOException e) {
System.out.println("Port " + port_number + " is already in use.");
}
```
5. **Windows PowerShell**:
```powershell
Test-NetConnection -ComputerName localhost -Port <port_number>
```
注意替换 `<port_number>` 为你想要检查的具体端口号。如果命令返回结果表明有活动连接或端口处于监听状态,则表示端口已被占用。
阅读全文