我已经从 Qt Quarterly 构建了Qt+Bonjour 集成演示,但我无法理解的一件事是,一次调用DNSServiceProcessResult()就是调用了DNSServiceResolveReply两次回调函数。
它应该调用一次!我的意思是,这一行:
DNSServiceErrorType err = DNSServiceProcessResult(dnssref);
导致DNSServiceResolveReply我传递给的回调DNSServiceResolve被调用两次。
不同的interfaceIndex是 - 第一次是10000010,第二次是20,但我不知道那是什么意思。
调用之间的所有其他参数都相同(flags当然,kDNSServiceFlagsMoreComing第一次和0第二次除外)。
编辑
这就是我调用DNSServiceResolve函数的方式。
DNSServiceErrorType err = DNSServiceResolve(&dnssref, 0, 0,
record.serviceName.toUtf8().constData(),
record.registeredType.toUtf8().constData(),
record.replyDomain.toUtf8().constData(),
(DNSServiceResolveReply)bonjourResolveReply, this);