在指定范围java之间连续循环

时间:2017-10-03 11:58:28

标签: java loops while-loop infinite-loop inetaddress

我正在创建一个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 个答案:

答案 0 :(得分:0)

如果你的循环应该是无限的,你可以使用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);


    }
}