Что произойдет с существующими соединениями при переключении между 3g / wifi

Предположим, что у меня есть TCP-соединение, которое делает тяжелую передачу данных в моей сети 3G; И я пошел домой, Android переключится на мой домашний Wi-Fi автоматически. Теперь, что случилось с существующей связью? Это просто отключить? Или он будет продолжаться, только новые подключения будут использовать Wi-Fi?

Кроме того, что, если я ухожу от дома, Wi-Fi потерял сигнал и переключился на 3g? Должно быть безопасно угадать, что соединение отключено. Для моего приложения мне нужно обработать пересоединение или есть решение для автоматического возврата?

Заранее спасибо.

Hongbo

Solutions Collecting From Web of "Что произойдет с существующими соединениями при переключении между 3g / wifi"

Соединение исчезнет, ​​потому что ваше устройство будет отображаться на другом IP-адресе, каким образом TCP-пакеты находят свой путь.

Нет никакого резерва, если вы его не закодируете, что вы должны делать в любом случае, если ваше приложение тратит много времени на 3G. Для настольных приложений вполне нормально: «D'oh!» Когда ваш кабель или DSL имеет случайную икоту, но 3G-соединения снижаются в обычном режиме.

То же самое произойдет, как если бы вы подключили ноутбук из одной сети и подключили другой. Соединения будут падать. Мобильные приложения гораздо чаще сталкиваются с потерянными / мертвыми соединениями, поэтому их следует кодировать соответствующим образом. Например, приложения могут регистрироваться для изменений статуса через android.net.ConnectivityManager. В некоторых случаях приложениям может потребоваться выполнить проверку целостности всего, что они загружают, чтобы они не начали пытаться отобразить разбитый файл. В других случаях было бы плохой способ загрузки определенных видов данных (например, больших файлов), если соединение осуществляется через 3G.

Ничего. Вы должны перечислить все текущие IP-адреса и привязать их к каждому из них в разных сокетах. И подпишитесь на уведомления о достижимости (своего рода для Android) при изменении состояния сети / IP-адресов. Код также должен работать на Android. См. Мой пример многолучевого распространения в этом документе: https://gist.github.com/avesus/fdb465b60a4f5204845c