Мне нужно обнаружить открытые порты на удаленном сервере. Мне интересно, возможно ли это? Я думал, что открою сокет, и если это удастся, это означает, что он используется ... в противном случае, если я получаю исключение, то он не используется.
Например,
public boolean isActive() {
Socket s = null;
try {
s = new Socket();
s.setReuseAddress(true);
SocketAddress sa = new InetSocketAddress(this.host, this.port);
s.connect(sa, 3000);
return true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (s != null) {
try {
s.close();
} catch (IOException e) {
}
}
}
return false;
}
это жизнеспособный подход?