¿Por qué usamos 10.0.2.2 para conectarnos al servidor web local en lugar de usar la dirección IP de la computadora en el cliente de Android?

Normalmente usamos 10.0.2.2:(número de puerto) en la url para conectarnos al servidor web local, pero debemos usar la dirección IP de la computadora en lugar de 10.0.2.2

Entonces, ¿por qué usamos 10.0.2.2?

Espacio de direcciones de red

Cada instancia del emulador se ejecuta detrás de un enrutador virtual / servicio de firewall que lo aísla de las interfaces y configuraciones de red de su máquina de desarrollo y de Internet. Un dispositivo emulado no puede ver su máquina de desarrollo u otras instancias de emulador en la red. En cambio, solo ve que está conectado a través de Ethernet a un enrutador / firewall.

El enrutador virtual de cada instancia gestiona el espacio de direcciones de red 10.0.2 / 24: todas las direcciones administradas por el enrutador tienen la forma de 10.0.2. , donde es un número. Las direcciones dentro de este espacio son preasignadas por el emulador / enrutador de la siguiente manera:

Dirección de red Descripción

 10.0.2.1 Router/gateway address 10.0.2.2 Special alias to your host loopback interface (ie, 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 

Si está ejecutando el servidor y el emulador en su computadora 127.0.0.1:(port) se referirá al emulador mismo y no al servidor. El 10.0.2.2 es la solución a ese problema 🙂

Espero que haya ayudado

El motivo por el que usa 10.0.2.2 es porque es el alias especial de su interfaz de loopback de host (también conocido como 127.0.0.1). Es por eso que funciona, y ¿no es genial que lo haga?

Si usa 10.0.2.2 para la conexión, siempre apuntará a su servidor local. Utilicé la IP real para mi máquina antes de leer esto y funciona de ambas maneras.

La ventaja de usar 10.0.2.2 es que no le importa cuál es la IP real y puede mover el proyecto más fácilmente en otra computadora.