我希望在 Java 程序中创建一个连续的增强型 For 循环,以将消息从自动 ping 输出到文本区域,然后在满足条件时停止(IP 地址脱机)。我在一个名为“ip”的字符串数组中有 IP 地址。无需循环即可正常工作,但需要不断迭代,直到没有检测到响应。
尝试使用我包含在代码中的布尔循环 - 但是不会将文本附加到 TextArea 并陷入连续循环。
for (String ip : listOfhosts) {
boolean repeatLoop = true;
try {
InetAddress i = InetAddress.getByName(ip);
textArea.append("Sending Ping Request to " + ip + "\n");
//boolean run = true;
//while (run){
if (i.isReachable(100)) { // 1 second limit
textArea.append("Host is online \n");
} else {
textArea.append("\nHOST IS OFFLINE\n");
//System.exit(0); //If something is offline, system will close. For now.
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("email@gmail.com"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("email@hotmail.com"));
message.setSubject("Test Mail");
message.setText("Test Mail," + "\n Sent From sendMail.java application\n");
//textArea.append("OK - Online \n");
Transport.send(message);
textArea.append("Mail Sent to email@email.com \n host " + ip + " is offline \n");
return;
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
} catch (Exception e) {
textArea.append("Unknown HOST\n");
e.printStackTrace();
}while(repeatLoop);
陷入连续循环 - 使程序崩溃。任何帮助都会很棒!
料青山看我应如是
慕斯王
慕慕森
相关分类