我的服务器运行在127.0.0.1:8000(Django应用程序)。一切都很好,我可以通过我的浏览器或卷曲访问它。
但是当我尝试连接我的ESP8266以发送一些数据时,某些内容被破坏,我甚至无法连接到我的localhost服务器。
我试过了:
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")
即可打印“连接中”。
有什么猜测吗?
答案 0 :(得分:2)
在TCP / IP中,名称“localhost”或从127.0.0.1到127.255.255.255的地址空间是本地计算机。意味着机器本身。我假设您的Django应用程序可以在计算机上运行,并且可以通过任何浏览器或卷曲从该计算机上运行,您可以连接并使用django服务。
当您尝试从esp模块连接django服务时,您尝试使用localhost ip,这意味着esp模块本身。由于esp作为服务没有运行,因此没有任何反应。
如果要将esp模块连接到计算机上运行的django服务,则需要键入计算机的真实地址。它应该像192.168.1.5或者那样不能以127.XXXXXXXX开头。
基本上,当您键入conn:connect(8000, "localhost")
时,您正尝试连接esp本身。不是你电脑上的django。