在iOS中透過Bonjour搜尋Domains以及服務
Bonjour是蘋果的一個類似DNS的服務,適用於區域網路之中,所以在Mac OS X, iOS中都可以看到它的身影,且在一些印表機之中也看得到。
今天我們就來嘗試用Bonjour來搜尋同一個區域網路底下有哪些服務吧。
記得在.h檔中引入<Foundation/NSNetworkServices.h>
,然後它需要一個delegate來代理整個回呼(Callback)的執行,所以必須要採用NSNetServiceBrowserDelegate
這個Protocol。
之後,我們可以透過實體化NSNetServiceBrowser來進行Domain的搜索:
1 2 3 |
|
之後我們要實作以下五個delegate methods:
- netServiceBrowserWillSearch: // 開始搜尋
- netServiceBrowserDidStopSearch: // 停止搜尋
- netServiceBrowser:didNotSearch: // 搜尋如果失敗
- netServiceBrowser:didFindDomain:moreComing: // 如果有找到的話
- netServiceBrowser:didRemoveDomain:moreComing: // 如果某個Domain消失的話
舉個netServiceBrowser:didFindDomain:moreComing:
的例子:
1 2 3 4 5 6 7 |
|
如此一來,我們可以在moreComing
為false的時候更新我們的UI列表即可。
之後,再來繼續撰寫怎樣搜尋服務。