Цикл непрерывно между указанным диапазоном Java

Я делаю Java-приложение, которое перебирает мою таблицу DHCP и пытается подключиться к нескольким устройствам. Я перебираю диапазон IP, но хотел бы постоянно перебирать диапазон, пока приложение не будет закрыто. Какова была бы лучшая практика для непрерывного цикла? установить значение для startipдважды, затем установите startip вернуться к оригиналу после достижения максимальной дальности? Ниже то, что у меня сейчас есть:

public void loopFTP(String startIP, String endIP, int timeout) throws SocketException, IOException {
    InetAddress startAsIP = InetAddresses.forString(startIP);
    InetAddress endAsIP = InetAddresses.forString(endIP);
    while(InetAddresses.coerceToInteger(startAsIP) <= InetAddresses.coerceToInteger(endAsIP)){
        System.out.println(startAsIP);
        attemptConnection(startAsIP, timeout);
        startAsIP = InetAddresses.increment(startAsIP);

    }
}

1 ответ

Решение

Если ваш цикл должен быть бесконечным, вы можете использовать for(;;) или while(true) петля.

Когда будет достигнут конец диапазона, просто перезагрузите startAsIP на основе startIP значение:

public void loopFTP(String startIP, String endIP, int timeout) throws SocketException, IOException {
    InetAddress startAsIP = InetAddresses.forString(startIP);
    InetAddress endAsIP = InetAddresses.forString(endIP);
    while(true){

        System.out.println(startAsIP);
        attemptConnection(startAsIP, timeout);

        if(InetAddresses.coerceToInteger(startAsIP) <= InetAddresses.coerceToInteger(endAsIP))
            startAsIP = InetAddresses.increment(startAsIP);
        else
            startAsIP = InetAddresses.forString(startIP);


    }
}
Другие вопросы по тегам