0

私はQt Quarterly からQt+Bonjour 統合デモDNSServiceProcessResult()を作成しましたが、1 回の呼び出しでDNSServiceResolveReplyコールバック関数が 2 回呼び出されていることを理解できません。

一度呼び出す必要があります。私が言いたいのは、この1行です:

DNSServiceErrorType err = DNSServiceProcessResult(dnssref);

結果として、DNSServiceResolveReply渡したコールバックがDNSServiceResolve2 回呼び出されます。

interfaceIndexは違います。最初は、100000102 回目は ですが20、それが何を意味するのかわかりません。

他のすべてのパラメーターは呼び出し間で同じです (flagsもちろん、kDNSServiceFlagsMoreComing1 回目と02 回目の を除きます)。


編集

これが私がDNSServiceResolve関数を呼び出す方法です。

DNSServiceErrorType err = DNSServiceResolve(&dnssref, 0, 0,
                                            record.serviceName.toUtf8().constData(),
                                            record.registeredType.toUtf8().constData(),
                                            record.replyDomain.toUtf8().constData(),
                                            (DNSServiceResolveReply)bonjourResolveReply, this);
4

1 に答える 1

0

問題が見つかりました。それは、を呼び出すときに を渡し0ていたことです。interfaceIndexDNSServiceResolve

ドキュメントは次のように述べています。

この解決呼び出しが現在アクティブな DNSServiceBrowse() 操作の結果である場合、interfaceIndex は DNSServiceBrowseReply コールバックで報告されたインデックスである必要があります。この解決呼び出しが、後で使用するために (設定ファイルなどに) 以前に保存された情報を使用している場合は、interfaceIndex 0 を使用します。これは、目的のサービスが別の物理インターフェイスを介して到達できる可能性があるためです。

于 2013-11-01T17:13:11.640 に答える