【问题标题】:Connect Flutter to localhost server in real device将 Flutter 连接到真实设备中的 localhost 服务器
【发布时间】:2021-02-03 01:17:33
【问题描述】:

我一直在寻找关于配置 Flutter 以连接到真实设备中的 localhost,但我没有找到任何东西。

当我尝试连接到本地主机中的服务器时,总是得到“连接超时”。

我已经用 10.0.0.2 的模拟器尝试了该应用程序,并且它工作了,但现在我想尝试在我的设备中进行连接,这似乎是不可能的!

这是我得到的错误:

SocketException:操作系统错误:连接超时,errno = 110,地址 = 192.168.0.125,端口 = 41814

请!应该不会这么难吧……

我正在使用 Spring Boot 服务器和 Flutter。我的设备是一加 6T。

当我使用邮递员时,它反应良好,我知道这里发生了什么。

【问题讨论】:

  • 您的设置不清楚,我们需要知道。告诉你的 Flutter 应用在​​哪台设备上运行。然后告诉你的服务器在哪个设备上运行。
  • 我的设备是装有 Android 10 的 OnePlus 6T,服务器在我的 PC 上运行 spring boot。
  • 那么客户端应该使用服务器计算机的本地 ip,看起来好像你正在使用它。尝试您的 Android 设备上的浏览器是否可以使用该 IP 进行连接。还可以尝试在您的 PC 上使用浏览器。您是否将服务器绑定到本地 ip,使其不接受其他连接?关闭你电脑的防火墙进行测试。
  • 正如我在一些示例中看到的,我尝试在 0.0.0.0:3333 中启动服务器,并且它在邮递员中继续正常工作。我还尝试在浏览器中访问该 ip,在设备中显示“连接超时”,在电脑中显示“连接被拒绝”。
  • 防火墙.......

标签: android ios flutter


【解决方案1】:

如果您的意思是现在您正在使用本地服务器(例如 xampp)并想在真实设备上进行测试 试试这个 https://ngrok.com/

【讨论】:

    【解决方案2】:

    仅当您在 Router 中启用了WiFi 隔离 时才能使用此解决方案。否则,如果您将本地 IP 地址 API 托管 url & 设置为颤振,它将起作用!

    第 1 步

    我遇到了同样的问题,我就这样解决了。默认情况下(很可能)您的路由器启用了 WiFi 隔离。这是一项安全功能。首先,您需要关闭此设置并保存设置。关闭路由器电源 >= 1 分钟,然后将其打开。

    第 2 步

    然后您需要向防火墙添加两个新规则。允许规则作为带有主机端口(例如 8000)的 Port-TCP-inbound 和 Port-TCP-outbound 规则。 IP 应保持“任何”并允许公共/私有/域。在您的服务器 API 中,将您的应用程序配置为使用上述配置的端口号 (8000) 在本地 IP 中运行。应该是这样的。

    第 3 步

    在您的 Flutter 应用程序中,将您的 URL 设置为您的本地 PC IP 和端口。

    然后运行您的 API 和颤振应用程序。您的本地 IP 端口配置适用于模拟器、android 设备和网络。我没有要测试的 iOS 设备。它也应该在那里工作。

    【讨论】:

      猜你喜欢
      • 2014-09-10
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-05
      • 2017-08-25
      • 2014-06-17
      相关资源
      最近更新 更多