我有以下代码检查端口 443 是否在给定主机中打开。
import java.net.*;
import java.io.IOException;
public class Scan {
public static void main (String[] args) {
String host="put hostname here";
int port=443;
try{
Socket s = new Socket(host,port);
System.out.println("Can listen on port "+port+
" in host "+host+" is open");
} //end try
catch (IOException ex)
{
//remote host is not listening on port 443
System.out.println("Can not listen on port "+port+
" of host "+host);
} //end catch
}
}
我的问题是:如果某个主机的 443 端口没有打开,这会使我的程序非常慢,因为我需要检查主机组。有什么方法可以改进代码以使扫描端口 443 更快,同时保持可靠性?除了使用套接字之外,还有什么方法可以使用 java 编程来进行端口扫描?
请注意,扫描前 ping 不会有帮助,因为我的主机名已连接,我只需要检查端口 443 是打开还是关闭。