Здесь может потребоваться некоторый пользовательский код или сеанс туннелирования по протоколу, предназначенному для этой концепции.IPSEC через UDP может быть хорошей номинацией.Если это вообще возможно, то, чтобы мобильное устройство слушало, как обычный сервер, и отправляло пинги, когда оно меняет адреса, это может избавить вас от многих проблем.Это будет зависеть от поведения телефона и от того, делает ли оператор раздражающие вещи, такие как фильтрация входящих TCP-соединений.В любом случае, для решения конкретных вопросов:
1) Нет, каждому соединению потребуется уникальный сокет.Это комбинация номера порта и IP-адреса.Даже если два телефона находятся за одним и тем же NAT, устройство NAT будет назначать разные порты соединениям.Вы можете запустить одну службу на одном порту вашего сервера.
2) См. Выше
3) Это будет происходить, как правило, а не как исключение.Они таймаут и закрываются.На самом деле это может оказаться менее сложной задачей, чем вы ожидаете.
4) Способ решения этой проблемы будет зависеть от ваших потребностей в безопасности.Вы можете попытаться идентифицировать базовые идентификаторы на телефоне, чтобы усложнить задачу, потребовать ввода пароля пользователя, чтобы сделать его двухфакторным, и т. Д. Это, конечно, конкурирует с простотой использования, поэтому компромиссное решение остается за вами..
1a) Понятия не имею ... но это не должно быть невозможным.
2a) Вы столкнетесь с этим в некоторых местах и там, где трудно предсказать.Тем не менее, вы также выполняете эти функции через HTTPS.