Ping 检查与域的连接

发布于 2024-11-19 15:23:36 字数 137 浏览 1 评论 0原文

在我的 Android 应用程序中,我正在查询数据库。我只能在手机连接到内部网络的情况下查询数据库,即:通过连接到公司 WiFi 或使用 VPN 连接。

我想首先检查此连接 - 也许首先尝试“ping”服务器?这可能吗?

谢谢。

In my android application I am querying a database. I am only able to query the database if the phone is connected to the internal network, i.e: by being connected to company WiFi, or by using VPN connection.

I would like to check this connection first - maybe by trying to 'ping' the server first? Is this possible?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

世界如花海般美丽 2024-11-26 15:23:36

只需尝试连接到网络/数据库/IP 并处理因网络无法访问或超时而引发的任何异常。

您还可以尝试 InetAddress ,它具有 isReachable () 方法。

Just try to connect to the network/database/ip and handle any exception thrown b/c the network is unreachable or b/c of a time out.

You can also try InetAddress which has an isReachable() method.

输什么也不输骨气 2024-11-26 15:23:36

如果您确实想检查网络状态,可以考虑使用 android.net.ConectivityManager。

ConectivityManager.requestRouteToHost() 可用于确保服务器可访问(尽管对其可靠性提出了质疑 - CommonsWare 答案中提到:如何管理 android 中的 wifi 互联网连接?

或者,如果您只想检查 WIFI 是否已连接,请尝试

ConectivityManager.getNetworkInfo(ConectivityManager.TYPE_WIFI).isConnected()

一些注意事项:

1)我在浏览器而不是 IDE 中输入此内容,因此它可能存在语法错误,

2)您必须使该代码更具防御性用于生产,以及

3) 如果网络当前可用或不可用,ConectivityManager 中的所有连接测试都可能不可靠。

希望这能满足您的要求。

You could consider using android.net.ConectivityManager if you really want to check the network status.

ConectivityManager.requestRouteToHost() can be used to ensure a server is reachable (although doubts have been raised about its reliability - mentioned in CommonsWare answer here : how to mange wifi internet connectivity in android? )

Alternatively, if you just want to check WIFI is connected, try

ConectivityManager.getNetworkInfo(ConectivityManager.TYPE_WIFI).isConnected()

Couple of caveats :

1) I'm typing this in a browser not an IDE, so it might have syntax errors,

2) You'll have to make that code much more defensive for production, and

3) All connectivity tests in ConectivityManager can be unreliable if networks are currently becoming available or unavailable.

Hope this covers what you were asking.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文