Java 如何计算在JSP中ping主机的次数?

Java 如何计算在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? "

我的代码在这里,我从中得到的结果是真是假,不管它是否与我在代码中提到的主机ping

  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
语句。我现在已经编辑了代码。我想这可能是你想要的,为了得到最好的响应,总是最好确保代码准确!希望我的回答有意义。