2010-08-18 142 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

相關問題