【问题标题】:How can Android Emulator reach server on local network?Android Emulator 如何到达本地网络上的服务器?
【发布时间】:2019-01-08 14:09:54
【问题描述】:

我想连接到本地网络 (10.134.0.178:80) 上的服务器。我的机器ip地址是10.134.3.12,模拟器wifi的ip地址是192.168.232.2

现在我发现您必须使用10.0.2.2 连接到本地计算机上的服务器。但是服务器没有在我的本地机器上运行——相反,它是我局域网上的一个单独的实例。

我的本​​地机器可以毫无问题地访问和 ping 服务器。模拟器没有,但模拟器可以访问互联网。所以我可以访问例如www.google.com

如何将模拟器与服务器连接?显示的redirection rules 仅适用于端口级别。那么这意味着如何使用呢?其他解决方案只谈论本地服务器。 Only one 正在谈论类似的案例,但这对我不起作用(无连接)

netsh interface portproxy add v4tov4 listenport=80 connectport=80 connectaddress=10.134.0.178

此外,我必须切换服务器实例(不同的 ips/端口/地址)。那么在这种情况下如何使用 Android Emulator 呢?应该向哪个地址进行 Web 服务调用? 10.0.2.210.134.0.178?

【问题讨论】:

  • 你需要连接同一个wifi网络,使用ipconfig找到你的电脑ip并尝试在手机浏览器中打开查看
  • 我为什么要这样做?我的机器上没有本地网络服务器或类似的东西。但如果我这样做,我会得到 找不到这个 10.134.3.12 页面 ...我也没有使用 WiFi - 都是以太网。只有模拟器模拟 WiFi。
  • 你使用什么类型的服务器?
  • 您是否使用 IIS 配置您的服务器?
  • 不涉及 IIS。有基于 SOAP 的 Web 服务调用。

标签: android networking android-emulator windows-10


【解决方案1】:

嗯,您的 Android 应用程序应该连接到服务器的地址/端口,因为它显示在运行 Android 模拟器的主机上。我的局域网上有一个网络服务器,我的模拟器可以直接访问它。首先将模拟器中的 Chrome 指向 LAN 上的 Web 服务器(假设您在某处有一个 Web 服务器) - 如果服务器位于 10.134.0.178:80 上,则只需在 Chrome 地址栏中输入 10.134.0.178。如果这不起作用,那么您需要查看阻止它的原因 - 是否有任何重定向规则阻碍?

【讨论】:

  • 我启动了一个开发环境,现在我的机器上运行了一个网络服务器。在 Chrome 中,我可以使用10.0.2.2 访问我的本地网络服务器。但我无法访问10.134.0.178:80 上的真实服务器。正如你所说,问题是我为什么以及如何找到它。在哪里可以找到重定向规则?如果你是这个意思,我删除了netsh 命令。
  • 还有一个问题:你的主机IP是多少,你的网络服务器IP是多少?
  • 你确定服务器不在代理后面吗? developer.android.com/studio/run/emulator-networking 解释了如何设置代理支持。
  • 不。奇怪的是现在一切正常,但我没有改变任何东西。我现在觉得很傻,因为我浪费了大家的时间。如果您愿意,可以阅读我的回答。我会尽快删除问题...感谢您的帮助!
  • 很高兴您没有删除这个问题。我遇到了完全相同的问题。我可以从模拟器访问 Internet,但是当我尝试解析到我的 LAN 中的服务器时,我收到主机无法访问的错误。非常令人沮丧,因为我需要访问该服务器并且它不在公共 IP 上。
【解决方案2】:

不知道原因是什么,但最可能的原因是服务器存在时间问题。现在我可以连接到我的服务器而无需进一步更改!

对我仍然不起作用的一件事是ping,但它在Local networking limitations 下列出:

根据环境,模拟器可能无法支持其他协议(例如 ICMP,用于“ping”)。目前,模拟器不支持 IGMP 或组播。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2013-10-20
    • 1970-01-01
    相关资源
    最近更新 更多