Я построил Qt+Bonjour integration demo из Qt Quarterly, но одна вещь, с которой я не могу обернуть голову, состоит в том, что один вызов DNSServiceProcessResult()
вызывает функцию обратного вызова DNSServiceResolveReply
дважды.Почему DNSServiceProcessResult вызывает мой обратный вызов дважды?
Следует называть его один раз! То, что я имею в виду, это одна строка:
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);