0

В настоящее время я работаю над Android-приложением, которое общается с моим домашним сервером. Цель приложения - связаться с сервером и отобразить список имен, которые находятся на сервере. Все это прекрасно работает, когда мой телефон подключен к домашнему Wi-Fi, но когда я переключаюсь на мобильную сеть или перехожу в другое место Wi-Fi, приложение не может отображать имена. В моем коде я использую строку для хранения ipv4 адреса на мой домашний сервер, как это:Android: подключение к домашнему серверу вне дома wifi

String server_url = "http://my home server ipv4 address/getarrayinfo.php"; 

Я пытался добавлять мой шлюз по умолчанию в строку, как это:

String server_url = "http://my default gateway address/my home server ipv4 address/getarrayinfo.php"; 

Но это сделал не работа. Что мне здесь не хватает?

P.S. Я использую Android-зал для общения по сети.

+0

Вы не можете найти информацию на этом сайте, потому что сетевая инфраструктура не по теме – pedrofb

ответ

2

Это не совсем подходящее место для этого вопроса, так как это, скорее всего, не имеет ничего общего с Android и связано с сетью.

Мое лучшее предположение из небольшого объема информации, которую вы предоставили, заключается в том, что вы попадаете в неправильный IP-адрес из-за пределов сети.

  1. Вам нужно открыть порт на маршрутизаторе, чтобы указать на «мой дом сервера ipv4 адрес» (позволяет делать вид, вы выбираете порт # 2345 и ваш IP домашний сервер 192.168.0.100). Это довольно просто и может быть настроено через 192.168.0.1 или 10.0.0.1 в зависимости от вашего маршрутизатора. Укажите порт TCP 2345 - 192.168.0.100.

  2. Узнайте адрес вашей домашней сети. Вы можете легко найти это, перейдя в http://www.whatsmyip.org/. Давайте притворимся, что он говорит вам, что IP-адрес 12.23.45.56

  3. Теперь, когда вы указываете устройство за пределами сети на 12.23.45.56:2345, ваш маршрутизатор будет распознавать сообщение на этот порт необходимо перенаправить на локальный адрес 192.168.0.100. Так что вам теперь настроить ваш server_url к

String server_url = "http://12.23.45.56:2345/getarrayinfo.php";

Я также хотел бы отметить, что ваша домашняя сеть, вероятно, не имеет статический IP-адрес - это означает, что каждый раз, когда ваш маршрутизатор перезапускает это будет получить что-то новый, который не является 12.23.45.56, поэтому вам придется обновлять код, если маршрутизатор перезапустится. Вы можете избежать этого, заплатив 10 долларов в месяц вашему интернет-провайдеру и назначив им свой статический IP-адрес.

+0

Или вы можете попробовать получить доменное имя для себя, а затем использовать Dynamic DNS, чтобы ваше доменное имя всегда привязывалось для исправления IP-адреса. – xwz7611