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