gpt4 book ai didi

java - 为什么 isReachable() 方法总是返回 "false"?

转载 作者:行者123 更新时间:2023-12-01 06:25:29 25 4
gpt4 key购买 nike

我想通过这种方式获取2台PC之间的延迟时间:

currentTime = System.currentTimeMillis();           
isPinged = InetAddress.getByName("192.168.6.18").isReachable(2000);
currentTime = System.currentTimeMillis() - currentTime;
System.out.println("----"+isPinged+":"+currentTime);

但是除了“localhost”之外,结果总是“false”,我尝试将getByName(“192.168.6.18”)更改为局域网内的PC,或者像“www.facebook.com”这样的网站。 com”,但没有效果

最佳答案

在 Windows PC 上使用此方法

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;

public Boolean ping(String ipaddress)
{
Runtime runtime = Runtime.getRuntime();
String cmds = "ping "+ipaddress;
System.out.println(cmds);
Process proc;
try {
proc = runtime.exec(cmds);
proc.getOutputStream().close();
InputStream inputstream = proc.getInputStream();
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
String line;
while ((line = bufferedreader.readLine()) != null) {
if(line.contains("Reply from "+ipaddress+":"))
{
return true;
}
}
}catch (IOException e) {
e.printStackTrace();
}
return false;
}

有关更多详细信息,请参阅Ping class

适用于 Windows 以外的 PC 使用

  public Boolean IsReachable(String ipaddress) {
try {
final InetAddress host = InetAddress.getByName(ipaddress);

try {
return host.isReachable(3000);
} catch (IOException e) {
e.printStackTrace();
}
} catch (UnknownHostException e) {
e.printStackTrace();
}
return false;
}

关于java - 为什么 isReachable() 方法总是返回 "false"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com