写个java的单线程端口扫描
时间: 2024-03-21 13:37:16 浏览: 74
Java的单线程端口扫描可以通过使用Socket类来实现。以下是一个简单的示例代码:
```java
import java.net.*;
public class PortScanner {
public static void main(String[] args) {
String host = "localhost"; // 目标主机
int startPort = 1; // 起始端口
int endPort = 65535; // 结束端口
for (int port = startPort; port <= endPort; port++) {
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(host, port), 1000); // 连接超时时间为1秒
System.out.println("端口 " + port + " 是开放的");
socket.close();
} catch (Exception e) {
// 端口关闭或连接超时
}
}
}
}
```
上述代码中,我们通过循环遍历指定范围内的端口,使用Socket类的connect方法尝试连接每个端口。如果连接成功,则说明该端口是开放的;如果连接失败或超时,则说明该端口是关闭的。
请注意,这是一个单线程的端口扫描示例,它会逐个尝试连接每个端口,因此速度较慢。如果需要更快速的扫描,可以考虑使用多线程或线程池来并发进行端口扫描。
阅读全文