无法浏览在esp8266中创建的Mdns服务

时间:2018-07-03 11:19:11

标签: arduino esp8266 nodemcu mdns dns-sd

到目前为止,我所做的是

我在nodemcu中创建了mdns服务

    ... // code used to create the mdns service 

    if (mdns.begin("esp", WiFi.localIP()))
        Serial.println("MDNS responder started");

    server.begin();
    Serial.println("HTTP REST Server Started");

    MDNS.addService("http", "tcp", 80); 

   ...
  

然后,我在Windows中安装了Bonjour。之后,我能够   ping esp.local来自Windows Power Shell,我也可以   使用mdns名称从浏览器与物联网设备通信   esp.local

问题Iam目前正在苦苦挣扎。

搜索mdns服务时,我无法发现此设备。 我在Windows Powershell中使用dns-sd浏览我的服务,但没有发现该设备。

命令为dns-sd.exe -B <Type> <Domain> (Browse for services instances)  所以我尝试了

dns-sd -B _http._tcp local. //have doubt about this one .

及其刚刚显示的

Browsing for _http._tcp.local.

如果有人可以帮助我,那就太好了。谢谢。

4 个答案:

答案 0 :(得分:1)

abhayastudios要求我帮助您。

您是否在代码中包含ESP8266mDNS.h?

您始终可以使用名为fing的android应用来尝试发现所有的mdns设备。 您是否检查了Windows服务以查看bonjour打印服务是否正在运行(或已安装)?有时Windows会停止此服务。

让我知道这是否有帮助。

答案 1 :(得分:1)

这些是我在MacOS上使用的命令,这些命令适用于我朋友的基于ESP8266的设备:

浏览HTTP Bonjour服务实例:

$ dns-sd -B _http._tcp .

解析Bonjour服务实例:

$ dns-sd -L <device name> _http._tcp .

答案 2 :(得分:0)

MDNS.addService("http", "tcp", 80);替换为mdns.addService("http", "tcp", 80);

解决了问题。 mdns是我的MDNSResponder对象实例。

答案 3 :(得分:0)

对我来说,需要在循环函数内调用MDNS.update()才能使其正常工作。