此 Ping 功能的替代建议?
Alternative suggestions for this Ping function?
在我的游戏应用程序中,我称之为:
Runtime.getRuntime().exec("/system/bin/ping -c 1 -w 1 $serverip")
它可以准确读取我的服务器的 ping 但在某些特殊情况下,ping 在某些情况下不会通过(例如,当玩家使用移动数据时,命令 returns 25% 的情况下没有明显原因)。
我知道必须有其他 ping commands/functions/methods/protocols 才能获得 ping 读数(我不确定游戏公司使用什么来在他们的游戏中获得持续的 ping 读数),有什么建议吗?提前致谢。
您也可以使用 java.net 包中提供的 Socket class。
使用提供的方法 connect(SocketAddress endpoint) 您可以将套接字连接到服务器。
例如,你可以使用这样的东西
public static boolean ping(String address, int port) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(address, port));
} catch (IOException e) {
return false;
} finally {
try {
socket.close();
} catch (IOException ignored) { }
}
return true;
}
你可以这样调用ping("www.google.com", 443)
最后,您可以使用 java.net.URL class 来包装您的字符串 url。
例如,
URL url = new URL("https://www.google.com:443/");
ping(url.getHost(), url.getPort());
在我的游戏应用程序中,我称之为:
Runtime.getRuntime().exec("/system/bin/ping -c 1 -w 1 $serverip")
它可以准确读取我的服务器的 ping 但在某些特殊情况下,ping 在某些情况下不会通过(例如,当玩家使用移动数据时,命令 returns 25% 的情况下没有明显原因)。
我知道必须有其他 ping commands/functions/methods/protocols 才能获得 ping 读数(我不确定游戏公司使用什么来在他们的游戏中获得持续的 ping 读数),有什么建议吗?提前致谢。
您也可以使用 java.net 包中提供的 Socket class。 使用提供的方法 connect(SocketAddress endpoint) 您可以将套接字连接到服务器。
例如,你可以使用这样的东西
public static boolean ping(String address, int port) {
Socket socket = new Socket();
try {
socket.connect(new InetSocketAddress(address, port));
} catch (IOException e) {
return false;
} finally {
try {
socket.close();
} catch (IOException ignored) { }
}
return true;
}
你可以这样调用ping("www.google.com", 443)
最后,您可以使用 java.net.URL class 来包装您的字符串 url。 例如,
URL url = new URL("https://www.google.com:443/");
ping(url.getHost(), url.getPort());