2

Bonjour を使用してサービスを公開するコードCocoaHTTPServerがあります。そして tt はこれに NSNetService を使用します。

ドメイン「.local」を定義すると、(OS X と iOS の両方で) 正常に動作します。ただし、それ以外を定義すると、サービスは公開されず、サーバーを公開しなかったデリゲートは呼び出されません。

これを調査したところ、次の情報が見つかりました。

NSNetService クラスのドキュメント:

このクラスと NSNetServiceBrowser クラスは、マルチキャスト DNS を使用して、アプリケーションとの間でネットワーク サービスに関する情報を伝達します。

Bonjour ドメイン名からのドキュメント

Bonjour システムでは、ローカル。ローカル IP ネットワークで IP マルチキャスト クエリを使用して検索する必要がある名前を示すために使用されます。

NSNetService クラスは .local ドメインでしか動作せず、広域 bonjour (異なるドメイン) では動作しないことを正しく理解していますか?

PS何も欠けていない場合は、Appleに連絡する予定です。引数が1つだけ正しい値で、他のすべてが正しくない(そしてエラーによって報告されない)というのは奇妙だからです。

4

1 に答える 1

2

NSNetService以外のドメインで動作しますlocal.

サービスを公開する前に、NSNetServiceBrowserを使用- (void)searchForRegistrationDomainsして、適切な登録ドメインを見つけてください。

Apple のNSNetServices and CFNetServices Programming Guideには、サンプル コードを含むこれに関するセクションが含まれています: Browsing for Domains

于 2014-06-19T11:04:41.520 に答える