在指定范围内不断循环java
Loop continuously between a specified range java
我正在制作一个 Java 应用程序,它将通过我的 DHCP table 循环并尝试连接到多个设备。我在一个 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);
}
}
如果您的循环应该是无限的,您可以使用 for(;;)
或 while(true)
循环。
到达范围末尾时,只需根据 startIP
值重置 startAsIP
:
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);
}
}
我正在制作一个 Java 应用程序,它将通过我的 DHCP table 循环并尝试连接到多个设备。我在一个 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);
}
}
如果您的循环应该是无限的,您可以使用 for(;;)
或 while(true)
循环。
到达范围末尾时,只需根据 startIP
值重置 startAsIP
:
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);
}
}