当我称之为;
struct addrinfo 提示,*res;
int 状态;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
char *host = "esp_942daf.local";
char *port = "5556";
status = getaddrinfo("esp_942daf.local", "80", &hints, &res)
eai_fail
查看 WireShark,我看到了请求;
192.168.1.187 224.0.0.251 MDNS Standard query 0x3090 A esp_942daf.local, "QM" ques
tion
但没有回应。
然后我在以下内容之后立即打电话;
struct ip4_addr addr;
addr.addr = 0;
mdns_query_a("esp_99a744", 2000, &addr);
它正确地解析了地址。值得注意的是,这次请求的类型是 QU;
192.168.1.187 224.0.0.251 MDNS Standard query 0x0000 A esp_99a744.local, "QU" question
我还尝试了另一个 mDNS 主机名;带有名称的 HP 打印机法典:
hpc8d9d240db2b.local
getaddrinfo
正确解决它。
那么,为什么 ESP 模块不响应 QM mDNS 查询呢?为什么 LwIP 和 mDNS 使用不同的查询类型?我还能尝试什么?