Android:将TCP连接从3G传输到WiFi

Android:将TCP连接从3G传输到WiFi,android,tcp,3g,Android,Tcp,3g,我正在为Android创建一个应用程序,它使用TCP下载文件。它已经完成,并且工作得很好,但是我遇到了一个问题,人们在下载文件时从一个网络切换到另一个网络,因为下载会停止并最终超时。一些设备甚至具有在找到合适热点时立即激活WiFi并禁用现有移动数据连接的功能 如何在切换网络时保持基于TCP的连接处于活动状态?有可能吗?我对网络了解不多,但我知道TCP连接固定在IP上,Android手机上的移动网络和wifi接口具有不同的IP。因此,如果IP发生变化,现有连接是否完全无法被其他网络访问?以较小的块

我正在为Android创建一个应用程序,它使用TCP下载文件。它已经完成,并且工作得很好,但是我遇到了一个问题,人们在下载文件时从一个网络切换到另一个网络,因为下载会停止并最终超时。一些设备甚至具有在找到合适热点时立即激活WiFi并禁用现有移动数据连接的功能


如何在切换网络时保持基于TCP的连接处于活动状态?有可能吗?我对网络了解不多,但我知道TCP连接固定在IP上,Android手机上的移动网络和wifi接口具有不同的IP。因此,如果IP发生变化,现有连接是否完全无法被其他网络访问?

以较小的块下载文件,而不是作为一个完整的下载。如果一个区块因连接更改而超时,您可以使用当前可用的连接类型再次启动该区块。

一般来说,这是一个好主意,但可能不会一直有效。如果从web服务器下载,并非所有服务器都支持从文件中的特定位置开始下载。只有OP知道这一点。我们只能根据我们掌握的信息对他/她遇到的问题提出建议。如果服务器不支持可恢复的下载,唯一的替代方法就是重新启动下载。事实上,我很惊讶这种转换不仅能无缝工作——TCP设计用于处理多个上下链接。L2/L3应该只使用另一个连接。也许安卓系统不起作用,也就是说,它在Wifi出现之前就禁用了3G连接。这将是一个糟糕的计划:(