【问题标题】:What will happen to existing connections when switch between 3g/wifi在 3g/wifi 之间切换时现有连接会发生什么
【发布时间】:2011-03-31 12:57:51
【问题描述】:

假设,我有一个 TCP 连接,在我的 3G 网络上传输大量数据;我走回家,Android 自动切换到我家的 Wifi。现在现有的连接会发生什么?它只是断开连接吗?还是会继续,只有新的连接会使用wifi?

另外,如果我离家出走,wifi信号没了,转3g怎么办?猜测连接被丢弃应该是安全的。对于我的应用程序,我需要处理重新连接还是有自动回退解决方案?

提前致谢。

洪波

【问题讨论】:

  • 有趣的问题。这对我来说值得 +1 ;)

标签: android wifi 3g


【解决方案1】:

连接将断开,因为您的设备将出现在不同的 IP 地址上,这就是 TCP 数据包找到它们的方式。

除非您编写代码,否则没有后备方案,如果您的应用在 3G 上花费大量时间,无论如何您都应该这样做。桌面应用程序运行“D'oh!”是完全可以的。当您的 Cable 或 DSL 偶尔出现故障,但 3G 连接经常中断时。

【讨论】:

    【解决方案2】:

    就像您将一台笔记本电脑从一个网络中拔出并插入另一个网络一样。连接会下降。移动应用更有可能遇到掉线/死连接,因此应对其进行相应编码。例如,应用程序可以通过 android.net.ConnectivityManager 注册状态更改。在某些情况下,应用程序可能需要对其下载的任何内容进行完整性检查,以免它们开始尝试渲染损坏的文件。在其他情况下,如果通过 3G 连接,下载某些类型的数据(例如大文件)是一种糟糕的形式。

    【讨论】:

      【解决方案3】:

      什么都没有。您应该枚举所有当前的 IP 地址并绑定到 不同 套接字上的每一个。并在网络状态/IP 地址发生变化时订阅可达性(Android 的一种)通知。代码也应该在 Android 中运行。在这个要点中查看我的多路径示例:https://gist.github.com/avesus/fdb465b60a4f5204845c

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-09
        • 1970-01-01
        • 2011-05-19
        相关资源
        最近更新 更多