アップルのDNSServiceQueryRecordを使用してSRVレコードを解決する予定です。このメソッドに渡されたコールバックは、SRV参照から返されるレコードごとに1回呼び出されることがわかります。クエリが完了し、すべてのレコードが返されたことをどのように知ることができますか?iOS:DNSServiceQueryRecordを使用したDNS SRVルックアップ
参考までにAppleのマニュアル。
アップルのDNSServiceQueryRecordを使用してSRVレコードを解決する予定です。このメソッドに渡されたコールバックは、SRV参照から返されるレコードごとに1回呼び出されることがわかります。クエリが完了し、すべてのレコードが返されたことをどのように知ることができますか?iOS:DNSServiceQueryRecordを使用したDNS SRVルックアップ
参考までにAppleのマニュアル。
私はDNSの結果がブロックされて処理する方法「DNSServiceProcessResult」を指摘したいと思います。 DNSServiceProcessResultを呼び出すためにソケットに受信されたデータがあるかどうかを調べるためにselect()を使用しました。これにより、メソッドはブロック解除されます。ソケットに2秒間データがあるかどうかを確認し、結果が返ってこない場合はクエリをキャンセルします。
これは私のために働く:http://stackoverflow.com/questions/22502729/resolving-srv-records-with-ios-sdk @意味の問題 – ssk
クエリは、いつでも新しいサービスが表示されるため、終了するまで無期限に実行されます。あなたは「十分な」答えがいつあるかを判断する必要があります。これは、一定の期間が経過した後、またはユーザ/アプリケーションがディスカバリビューを終了したときに、1つの回答があった後になる可能性があります。 – Paulw11
完全に確実な質問:これはブロッキングかノンブロッキングの方法ですか? – adsun
ノンブロッキングそれはコールバック関数を持っている理由です – Paulw11