Java 如何计算在JSP中ping主机的次数?
我的代码在这里,我从中得到的结果是真是假,不管它是否与我在代码中提到的主机pingJava 如何计算在JSP中ping主机的次数?,java,count,ping,Java,Count,Ping,我的代码在这里,我从中得到的结果是真是假,不管它是否与我在代码中提到的主机ping try { InetAddress address = InetAddress.getByName("192.168.1.125"); boolean reachable=address.isReachable(10000)); out.print(PingHost.DrawTable()); out.print("Is host reachable? "
try
{
InetAddress address = InetAddress.getByName("192.168.1.125");
boolean reachable=address.isReachable(10000));
out.print(PingHost.DrawTable());
out.print("Is host reachable? " + reachable);
}
catch(Exception e)
{
out.print(e.printStackTrace());
}
我想计算它尝试ping主机的次数,如果第一次ping未完全成功,ping的最大次数为10
希望得到你的建议
提前感谢假设
address.isReachable(10000))
正在执行ping操作,并返回true或false,那么您需要如下内容:
int counter = 0;
do
{
counter ++;
if(address.isReachable(10000))
{
break;
}
}
while (counter < 10)
// now counter contains the number of attempts
int计数器=0;
做
{
计数器++;
如果(地址:isReachable(10000))
{
打破
}
}
while(计数器<10)
//现在计数器包含尝试次数
我认为你最好能找到一本关于编程的好书,想出一个类似的解决方案,这不应该是你需要问的问题。final static int MAX_PINGS=10;
final static int MAX_PINGS = 10;
final static int TIMEOUT= 10000;
int countFailed = 0;
for (int i=0; i<MAX_PINGS; i++){
if (address.isReachable(TIMEOUT)){
System.out.println("Pinged successfully");
break;
}else{
countFailed++;
}
}
最终静态int超时=10000;
int countFailed=0;
对于(int i=0;i,我首先要问的是,为什么该代码需要驻留在JSP中。如果无法访问主机,则对该JSP的请求将永远无法返回给您。任何使用成员变量跟踪计数的解决方案也会有问题,因为它会遇到并发问题
您最好在servlet上编写LaceySnr,并在单独的线程上生成该代码。哪里定义了可访问的,它在哪里设置?此外,我已经修复了格式,但您在这里还有一些其他问题,例如,如果语句发生意外,则第二个上的;
语句?如果不是,则不会需要if
语句。我现在已经编辑了代码。我想这可能是你想要的,为了得到最好的响应,总是最好确保代码准确!希望我的回答有意义。