1

我有一个运行在 127.0.0.1:8000 的服务器(Django 应用程序)。一切正常,我可以通过浏览器或 curl 访问它。

但是当我尝试连接我的 ESP8266 以发送一些数据时,有些东西坏了,我什至无法连接到我的本地主机服务器。

我努力了:

conn = net.createConnection(net.TCP, false)
conn:on("connection", function(conn, payload) print("in connection") end)
conn:connect(8000, "127.0.0.1")

什么都没有打印。

我试过用conn:connect(8000, "localhost"), conn:connect(8000, "http://127.0.0.1"), conn:connect(80, "127.0.0.1"). 结果相同,没有打印任何内容。最后一个,我有一个“DNS失败!” 信息。

只是为了检查,conn:connect(80, "www.google.com")打印了“in connection”。

有什么猜测吗?

4

1 回答 1

2

在 TCP/IP 中,名称“localhost”或从 127.0.0.1 到 127.255.255.255 的地址空间是本地计算机。指机器本身。我假设您的 Django 应用程序可以在计算机上运行,​​并且可以从该计算机上使用任何浏览器或 curl 连接并使用 django 服务。

当您尝试从 esp 模块连接 django 服务时,您尝试使用 localhost ip,这意味着 esp 模块本身。由于 esp 上没有任何服务作为服务运行,因此没有任何反应。

如果要将 esp 模块连接到计算机上运行的 django 服务,则需要输入计算机的真实地址。它应该像 192.168.1.5 之类的,但不是以 127.XXXXXXXX 开头。

基本上,当您键入时,conn:connect(8000, "localhost")您正在尝试连接 esp 本身。不是您计算机上的 django。

于 2015-10-15T09:01:56.693 回答