如何使用Java以编程方式确定给定计算机中端口的可用性?
即给定一个端口号,确定它是否已被使用?
我制作了非常简单的端口扫描程序,但它运行速度太慢,所以我正在寻找方法使其扫描速度更快.这是我的代码:
public boolean portIsOpen(String ip, int port, int timeout) {
try {
Socket socket = new Socket();
socket.connect(new InetSocketAddress(ip, port), timeout);
socket.close();
return true;
} catch (Exception ex) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
此代码在此测试特定端口是否在特定IP上打开.对于超时,我使用最小值200,因为当我降低时,它没有足够的时间来测试端口.那么它运行良好,但从0到65535扫描需要太多.有没有其他方法可以在不到5分钟的时间内从0扫描到65535?