統計情報(30日間)


最新情報をツイート

人気の投稿

DNS-SD(DNS based Service Discovery) API の実装サンプル

このエントリーをはてなブックマークに追加

Mac OS X / iOS の場合、Bonjour API(NSNetService and CFNetService) が用意されているのでそれを使うのが一番簡単だが、例えば特定のネットワークインターフェイスだけに限定したいといった細やかな設定ができない(らしい)。DNS Service Discovery API (dns_sd.h) を使うとそういった細やかな制御ができる。このサンプルでは DNS-SD API を使い、Bonjour Service の登録、ブラウズ、サービス解決を行う。サンプルは Mac OS X 10.7 用だが、コア部分(サービス登録・ブラウズ・名前解決のクラス)は iOS 5 でも利用できる。


サンプルの実行はコマンドラインから。こんな感じ。
$ build/Debug/DNSSDObjects -r _foo._tcp 12345
  :
$ build/Debug/DNSSDObjects -b _foo._tcp
  :
$ build/Debug/DNSSDObjects -l 'Bruno' '_foo._tcp' 'local.'


サンプルを実用的に利用する指針として挙げられていた項目:
operating on a specific interface
enabling support for Bluetooth browsing on iOS 5.0 and later (kDNSServiceFlagsIncludeP2P)
supporting TXT records
monitoring record changes
discovering browsable domains, and browsing within those domains
resolving to IP addresses
registering or querying for arbitrary DNS records
shared connections (kDNSServiceFlagsShareConnection)

Leave a Reply