我已经从 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);