【问题标题】:Android device stops replying to ping after some time一段时间后,Android 设备停止回复 ping
【发布时间】:2016-04-19 09:51:33
【问题描述】:

我正在 Android 4.4 上开发信息亭模式应用程序

我的设备有一张带有静态(固定)公共 IP 的 3G SIM 卡。因此,我可以从 Internet ping 我的 Android 设备。

几天(或有时几个小时)后,我无法再 ping 设备了。为什么设备停止监听网络接口?当然,该设备仍然通电。如果我将设备切换到平面模式,然后禁用平面模式,它会再次工作,但我不会激活平面模式,我希望设备 24/7 全天候收听。

由于这些断开连接,我无法开发服务器服务。反正我可以调试吗?

【问题讨论】:

    标签: android android-source android-networking


    【解决方案1】:

    在移动无线数据网络上确实很少有静态 IP。

    只是一个理论:蜂窝网络上可能存在某种形式的优化器系统,它不考虑静态 IP,如果 X 时间段内没有收到来自设备的消息,它会断开连接。

    因此,您可以尝试添加一小段从您的手机 ping 或每小时执行一次简单的 http-get 的代码。如果这确实阻止了辍学,那么您可以逐步扩大该时间窗口,直到找到阈值。

    【讨论】:

    • 谢谢你的线索。哦,对不起,我忘了提到这种 SIM 卡的数据非常昂贵,所以我不能每天花费 kB 的数据......
    • 了解数据成本。只需 ping 一次,您就需要非常少的数据。例如,ping -s 1 www.google.com 将使用 29 字节的总数据包(20 字节 IP 标头 + 8 字节 ICMP 标头 1 字节数据)来 ping google。粗略计算:每小时 ping 一次,仅使用 1 兆字节就需要大约 3.9 年。也许一半到 2 年允许回复数据包......
    • 但是为了测试,我还是推荐一个快速的 TCP HTTP-GET。原因是,我知道他们有时不会“计算”ICMP。我有一个大学写了自己的传输程序,将所有数据集中在 ICMP 而不是 TCP,因为他的 ICMP 不计入他的移动数据限额...
    猜你喜欢
    • 2012-10-13
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多