首页 文章

无法从Android设备访问localhost

提问于
浏览
8

模拟器可以从本地主机访问Web服务,但我的真实设备不能使用LAN IP地址(192.168.xx.yyy)而不是10.0.2.2 . 当然,我的Android手机被adb认可,它通过USB端口连接我的笔记本电脑 .

我已经在stackoverflow上阅读了一些类似的问题,但仍然不知道如何从真正的Android手机访问webservice . 这个问题的答案How can I access my localhost from my Android device?我很有用,但我真的不明白这个答案 .

有人帮我吗?谢谢!

3 回答

  • 0

    Web服务器可能正在侦听环回接口,但不在网络接口上侦听 . 这意味着 127.0.0.1localhost 上的匹配将起作用,但 192.168.xxx.xxx 将不起作用(无论是来自localhost,LAN还是WAN) .

    要确定服务器正在侦听哪个接口,请查看here以获取有关侦听端口的命令(我使用了 lsof -Pan -i tcp -i udp ) . 然后在列表中查找您的服务器进程 . 对于 lsof 命令,如果对于端口8888,您会看到类似 TCP *:8888 (LISTEN) 的内容,那么您的服务器正在侦听所有接口 . 但如果您反而看到像 TCP [::127.0.0.1]:8888 (LISTEN) 这样的东西,那么您已经发现了问题!

    解决问题的下一步是设置您的服务器's run configuration to listen on all interfaces. I don' t知道您正在使用的服务器,但是如果您可以指定IP地址,那么您可能想要尝试 0.0.0.0 . 通常,您可以在允许指定侦听端口的位置附近执行此操作 . 因此,如果您有如下配置:

    --port 8888

    然后你可以尝试:

    --port 8888 --address 0.0.0.0

  • 8

    在我看来,以下几点对于开发者社区来说更为重要

    我不是网络专家;像我一样,许多开发人员可能会在那

    在httpd.conf中更改为0.0.0.0:80非常重要 .

    在正常(默认)设置中,端口8888在WAMPSERVER中引发错误(即使在Windows浏览器中) . 这就是我解释端口8888抛出错误的确切环境的原因 .

    有关哪些配置抛出错误以及哪些配置成功运行的具体信息更为重要 .

  • -2

    您是否尝试使用连接到LAN的wifi路由器?然后你只需要使用你的手机连接到wifi,你应该能够访问(192.168.xx.yyy)

相关问题