2013-02-21 45 views
2

我有一個代碼CocoaHTTPServer,它使用Bonjour發佈服務。並且爲此使用NSNetService。NSNetService是否僅適用於.local域?

如果您定義了域「.local」,它可以正常工作(在OS X和iOS上)。但是,如果您定義了其他任何內容,則不會發布服務,也不會調用不發佈服務器的委託。

我調查了這一點,發現以下信息。從NSNetService class

文檔:

這個類和NSNetServiceBrowser類使用多播DNS來 傳達有關網絡服務,並從您 應用程序的信息。

Bonjour domain names

文檔在卓悅系統,本地。用於指示在本地IP網絡上使用IP多播查詢應查找的名稱 。

我是否正確理解NSNetService類只能與.local域一起工作,並且不能與廣域bonjour(不同的域)一起工作?

P.S.如果我沒有遺漏任何東西,我打算聯繫Apple,因爲只有一個正確的值和所有其他不正確的錯誤(並且沒有通過任何錯誤報告)的參數很奇怪。

回答

2

NSNetService可以與除local.以外的域一起工作。

在發佈您的服務之前,請使用NSNetServiceBrowser- (void)searchForRegistrationDomains來查找合適的註冊域。

Apple的NSNetServices和CFNetServices編程指南包含一個關於此的章節,其中包括示例代碼:Browsing for Domains

相關問題