为什么我们使用10.0.2.2连接到本地web服务器,而不是在android客户端使用计算机ip地址

我们通常使用url中的10.0.2.2:(端口号)连接到本地Web服务器,但是我们应该使用计算机的IP地址而不是10.0.2.2

那为什么我们用10.0.2.2呢?

Solutions Collecting From Web of "为什么我们使用10.0.2.2连接到本地web服务器,而不是在android客户端使用计算机ip地址"

networking地址空间

仿真器的每个实例都在虚拟路由器/防火墙服务后面运行,将其与开发计算机的networking接口和设置以及互联网相隔离。 仿真设备无法在networking上看到您的开发机器或其他仿真器实例。 相反,它只能看到它通过以太网连接到路由器/防火墙。

每个实例的虚拟路由器pipe理10.0.2 / 24networking地址空间 – 路由器pipe理的所有地址都是以10.0.2.<xx>的forms,其中<xx>是一个数字。 这个空间内的地址是由仿真器/路由器预先分配的,如下所示:

networking地址描述

 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 

如果你正在运行服务器和模拟器在你的计算机127.0.0.1:(端口)将引用模拟器本身,而不是服务器。10.0.2.2是解决这个问题:)

希望有所帮助

您使用10.0.2.2的原因是因为它是主机回送接口(又名127.0.0.1)的特殊别名。 这就是它工作的原因,它不是很酷吗?

如果您使用10.0.2.2进行连接,它将始终指向您的本地主机。 在阅读本文之前,我使用了真正的IP作为我的机器,它在两个方面都起作用。

使用10.0.2.2的优点是你不关心什么是真正的IP,你可以在另一台计算机上更容易地移动项目。