在3G / WIFI之间切换时,现有连接会发生什么情况

假设我有一个TCP连接,在我的3Gnetworking上进行繁重的数据传输; 我走回家,Android自动切换到我家的Wifi。 现在的连接发生了什么? 它是简单地断开? 或者它会继续下去,只有新的连接将使用WiFi?

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

提前致谢。

macros博

Solutions Collecting From Web of "在3G / WIFI之间切换时,现有连接会发生什么情况"

连接将会丢失,因为您的设备将出现在不同的IP地址,这是TCP数据包如何find他们的方式。

如果你的应用程序花费了大量的时间在3G上,那么你不应该做任何回退,除非你编码。 桌面应用程序的“哦,哦! 当你的有线或DSL有偶尔的打嗝,但3G连接经常下降。

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

没有。 您应该枚举所有当前的IP地址,并将其绑定到不同的套接字上。 并且在networking状态/ IP地址改变时订阅Reachability(一种用于Android的)通知。 代码也应该在Android中工作。 请参阅我的多path示例: https : //gist.github.com/avesus/fdb465b60a4f5204845c