2010-08-18 141 views
18

假设我有一个TCP连接,在我的3G网络上进行繁重的数据传输;我走回家,Android自动切换到我的家庭Wifi。现在的连接发生了什么?它只是断开连接?或者它会继续下去,只有新的连接将使用WiFi?当在3g/wifi之间切换时现有连接会发生什么

另外,如果我走出家门,wifi丢失信号并切换到3G?猜测连接丢失应该是安全的。对于我的应用程序,是否需要处理重新连接或者是否有自动回退解决方案?

在此先感谢。

宏博

+0

有趣的问题。这对我来说值得+1;) – Sephy 2010-08-18 12:51:32

回答

9

连接将下降,因为你的设备将出现在不同的IP地址,这是TCP数据包如何找到自己的方式。

除非您将其编码,否则无法回退,如果您的应用在3G上花费大量时间,则无论如何您都应该这样做。桌面应用程序转到“哦,哦!当你的有线或DSL有偶尔的打嗝,但3G连接经常下降。

1

同样的事情会发生,如果你从一个网络插入一台笔记本电脑,并插入另一个网络。连接会下降。移动应用程序更可能遇到丢失/死亡连接,因此应该对其进行相应编码。例如,应用程序可以通过android.net.ConnectivityManager注册状态更改。在某些情况下,应用程序可能需要对其下载的任何内容进行完整性检查,以便它们不会开始尝试渲染破损的文件。在其他情况下,如果通过3G连接,则下载某些类型的数据(例如大文件)将是不好的形式。

0

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

相关问题