📄 mythread.java
字号:
package mapabc;
/**
* <p>Title: 服务器监控</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: Mapabc.com</p>
* @author wangchangbao
* @version 1.0
*/
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.Calendar;
class Mythread extends Thread
{
int pauseTime;//延时
int number;//监控服务器数量
int address_Number;//邮件地址的数量
int count1[];//累加不工作的次数
int send_control[];
String count[];//记录服务器的工作状态
String m_servlet[]={"","","","","","","","","","","","","","","","","","","",""};//存储服务器的地址
String Time[]={"","","","","","","","","","","","","","","","","","","",""};//记录服务器不工作时的时间
String a_ddress[]={"","","","","","","","","",""};//存储邮箱的地址
public void SendMail(int order)//发邮件
{try
{
for (int i = 0; i < address_Number; i++) {
Mail sml = new Mail();
sml.MailContent("不工作的服务器IP是:" + m_servlet[order]+"\n\t"+"出现异常时的时间是:"+Time[order]);
sml.I_nternetaddress(a_ddress[i]);
System.out.println(m_servlet[order]);
sml.send();
}
}catch(Exception e){e.printStackTrace();}
}
void SendControl(int order){
String center;
send_control[order]++;
if(send_control[order]<3)
{
SendMail(order);//调用发邮件程序
}
else
send_control[order] = 3;
}
public void Count1(int order,String estate)
{
count[order]=estate;//n表示服务器的工作状态
if(estate=="异常")
{
count1[order]++;
System.out.println(count1[order]);
if(count1[order]==5)
{
SendControl(order);
count1[order]=0;//累加清零
}
}
else{
count1[order]=0;
send_control[order]=0;
}//如果被监控服务器正常累加清零
}
public void DateTime(int ss)
{
Calendar now=Calendar.getInstance();
int year,month,date,hour,minute,second;
year=now.get(Calendar.YEAR);
month=now.get(Calendar.MONTH)+1;
date=now.get(Calendar.DATE);
hour=now.get(Calendar.HOUR_OF_DAY);
minute=now.get(Calendar.MINUTE);
second=now.get(Calendar.SECOND);
Time[ss]=(year+"年"+month+"月"+date+"日"+hour+":"+minute+":"+second);
System.out.println(Time[ss]);
}
public void Controls()
{
count=new String[20];
count1=new int[20];
send_control=new int[20];
for(int i=0;i<20;i++)
send_control[i]=0;
String m_servletName;
while(true)
{
for(int i=0;i<number;i++)
{
m_servletName=m_servlet[i];
try{try {
String url = m_servletName ;
URL mapServer = new URL(url);
URLConnection s = mapServer.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
s.getInputStream()));
String inputLine;
if((inputLine = in.readLine()) != null)
{
Time[i]="";
}
in.close();
Count1(i,"正常");//有字符返回置1表示正常
}catch(Exception e)
{
if(Time[i]=="")
{
DateTime(i);
}//判断服务器是否是刚刚不工作,如果不是保持时间不便
Count1(i,"异常");//无字符返回置0表示不正常
}
pauseTime=1000;//间隔0.5S访问1次
Thread.sleep(pauseTime);
}catch(Exception e) {e.printStackTrace();}
}
}
}
void Set_address(String address)
{
int lengths = 0, strBegin = 0, num = 0;
char add[] = new char[1000];
lengths = address.length();
address.getChars(0, lengths, add, 0); //将邮件地址字符串转化为字符数组
for (int i = 0; i < lengths; i++) {
if (add[i] == ';') {
a_ddress[num] = new String(add, strBegin, i - strBegin); //将字符数组分解为邮件地址字符串数组
strBegin = i + 1;
num = num + 1;
}
}
a_ddress[num] = new String(add, strBegin, lengths - strBegin);
address_Number = num + 1; //邮件地址的数量
}
void SetURL(String geturl)
{
int lengths,strBegin=0,num=0;
char urls[]=new char[1000];
lengths=geturl.length();
geturl.getChars(0,lengths,urls,0);//将服务器字符串转化为字符数组
for(int i=0;i<lengths;i++)
{
if(urls[i]==';')
{
m_servlet[num]=new String(urls,strBegin,i-strBegin);//将字符数组分解为IP字符串
strBegin=i+1;
num++;
}
}
m_servlet[num]=new String(urls,strBegin,lengths - strBegin);
number=num+1;//服务器数量
}
public Mythread()
{}
public void run() {Controls();}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -