Android:将TCP连接从3G转移到WiFi

4
我正在为Android创建一个使用TCP下载文件的应用程序。它已经完成,工作得很好,但我遇到了一个问题:当人们在下载文件时从一个网络切换到另一个网络时,下载会停止并最终超时。有些设备甚至有一个功能,当找到合适的热点时立即激活WiFi并禁用现有的移动数据连接。
如何在切换网络时保持基于TCP的连接不中断?这是否可能?我对网络知识不是很了解,但我知道TCP连接是固定在IP上的,并且Android手机上的移动网络和WiFi接口具有不同的IP。因此,如果IP更改,现有连接是否完全无法被其他网络访问?

我其实很惊讶转换并没有无缝地工作 - TCP 被设计用来处理多个上下线的链接。据我所知,L2/L3 应该只是使用另一个连接。也许安卓不行,即在 Wifi 连接之前它会禁用 3G 连接。那将是一个糟糕的计划:( - Martin James
1个回答

3

将文件分成较小的块进行下载,而不是一次性完整下载。如果其中一个块因为连接变化超时,您可以使用当前可用的连接类型重新启动该块。


虽然这是一个好主意,但并不总是可行的。如果从Web服务器下载,不是所有服务器都支持从文件的特定位置开始下载。 - Some programmer dude
只有原帖作者才知道这个问题的具体情况。我们只能根据我们所掌握的信息提供解决方案建议。如果服务器不支持可恢复下载,唯一的选择就是重新开始下载。 - Kuffs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接