高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先

Technical Q&A QA1331
Use empty string for Rendezvous domains


Q:CFNetServices、NSNetServices、および DNSServiceDiscovery のような Rendezvous API を使用する際、ドメインパラメータには何を渡せばよいのですか?

A:通常、サービスを登録してブラウズする際に、空の文字列 ("") をドメインとして渡すと、システムが自動的に正しいことを実行します。Mac OS X 10.2 〜 10.3.xでは、空の文字列を使用すると、システムがマルチキャスト DNS "local." ドメインへのサービスの登録とブラウズを行います。さらに、空の文字列をドメインとして渡すことで、アプリケーションは将来的な Rendezvous の強化を自動的に利用することになります。

サービスを解決する場合は、サービスを最初に検出したときに Browse コールバックで返されたのと同じドメインを渡す必要があります。すべてのサービスが "local." ドメインにあると想定しないでください。"local." を解決用のドメインとしてハードコードすると、アプリケーションは将来のバージョンの Mac OS X と互換性が一部なくなる可能性があります。

場合によっては、アプリケーションがローカルネットワーク以外で動作するのを防ぎたいことがあります。たとえば、iTunes はローカルリンク上の他のコンピュータとのみミュージックを共有する必要があります。このような場合は、登録とブラウズの際に "local." をドメインパラメータとして明示的に渡すことで、Rendezvous のサービス検出をローカルネットワークに制限することができます。



重要:
一部の市販アプリケーションは、登録とブラウズの際には、無効なドメインを渡しています。高レベルからはすべてが正常に動作しているように見えているとしても、無効なドメインを使用することにより、これらのアプリケーションは不正なマルチキャスト DNS パケットを生成します。具体的には、"local.arpa" および ".local" ("local" の前にドットがある)ドメインは無効です。これらのドメインを使用するアプリケーションは、Mac OS X の将来のバージョンでは動作しなくなります。




[2004 年 2 月 6 日]