Почему мы используем 10.0.2.2 для подключения к локальному веб-серверу вместо использования IP-адреса компьютера в клиенте Android
Обычно мы используем 10.0.2.2:(номер порта) в URL для подключения к локальному веб-серверу, но мы должны использовать IP-адрес компьютера вместо 10.0.2.2
Тогда почему мы используем 10.0.2.2?
4 ответа
Сетевое адресное пространство
Каждый экземпляр эмулятора работает за службой виртуального маршрутизатора / брандмауэра, которая изолирует его от сетевых интерфейсов и настроек вашего компьютера разработчика и от Интернета. Эмулируемое устройство не может видеть вашу машину разработки или другие экземпляры эмулятора в сети. Вместо этого он видит только то, что он подключен через Ethernet к маршрутизатору / брандмауэру.
Виртуальный маршрутизатор для каждого экземпляра управляет сетевым адресным пространством 10.0.2/24 - все адреса, управляемые маршрутизатором, имеют вид 10.0.2.<xx>
, где <xx>
это число. Адреса в этом пространстве предварительно распределяются эмулятором / маршрутизатором следующим образом:
Описание сетевого адреса
10.0.2.1 Router/gateway address
10.0.2.2 Special alias to your host loopback interface (i.e., 127.0.0.1 on your development machine)
10.0.2.3 First DNS server
10.0.2.4 / 10.0.2.5 / 10.0.2.6 Optional second, third and fourth DNS server (if any)
10.0.2.15 The emulated device's own network/ethernet interface
127.0.0.1 The emulated device's own loopback interface
Если вы используете сервер и эмулятор на своем компьютере, 127.0.0.1:(port) будет ссылаться на сам эмулятор, а не на сервер. 10.0.2.2 является решением этой проблемы:)
Надеюсь, что помог
Причина, по которой вы используете 10.0.2.2, заключается в том, что это специальный псевдоним интерфейса петли вашего хоста (он же 127.0.0.1). Вот почему это работает, и разве это не круто?
Если вы используете 10.0.2.2 для подключения, он всегда будет указывать на ваш локальный хост. Я использовал реальный IP для своей машины, прежде чем читать это, и он работает в обоих направлениях.
Преимущество использования 10.0.2.2 состоит в том, что вам все равно, какой реальный IP, и вы можете легче перенести проект на другой компьютер.