Я сделал очень простой сканер портов, но он работает слишком медленно, поэтому я ищу способ ускорить его сканирование. Вот мой код:
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;
}
}
Этот код проверяет, открыт ли конкретный порт для определенного IP-адреса. Для тайм-аута я использовал минимальное значение 200
, потому что когда я опускаюсь ниже, у него не хватает времени для тестирования порта.
Это работает хорошо, но слишком много времени для сканирования от 0 до 65535. Есть ли другой способ, который может сканировать от 0 до 65535 менее чем за 5 минут?