此 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());