用java写一个监测多台服务器的代码
时间: 2024-03-16 11:47:47 浏览: 18
以下是一个简单的Java代码示例,可以监测多台服务器的运行状态:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class ServerMonitor {
public static void main(String[] args) {
String[] serverList = {"192.168.0.1", "192.168.0.2", "192.168.0.3"};
for (String server : serverList) {
Thread t = new Thread(new MonitorThread(server));
t.start();
}
}
}
class MonitorThread implements Runnable {
private String serverName;
public MonitorThread(String serverName) {
this.serverName = serverName;
}
public void run() {
try {
InetAddress serverAddress = InetAddress.getByName(serverName);
boolean isAlive = serverAddress.isReachable(5000); // 5秒超时
if (isAlive) {
System.out.println(serverName + " is online");
} else {
System.out.println(serverName + " is offline");
}
} catch (UnknownHostException e) {
System.out.println("Unknown host: " + serverName);
} catch (IOException e) {
System.out.println("Error checking status of " + serverName + ": " + e.getMessage());
}
}
}
```
代码中,首先定义了一个字符串数组serverList,用于存储要监测的服务器列表。然后,对于每个服务器,创建一个新的线程来执行监测任务。线程的实现类是MonitorThread,其中的run()方法用于实现监测逻辑。具体实现中,通过InetAddress类的getByName()方法获取服务器的IP地址,然后调用isReachable()方法来检测服务器是否在线。如果服务器在线,就输出相应的提示信息。如果服务器不在线,也输出相应的提示信息。
值得注意的是,在实际的应用中,需要考虑更多的因素,比如服务器的状态信息是否需要存储到数据库中,如何进行异常处理等等。此处仅提供一个简单的示例代码,供参考。