2014-01-28 44 views
3

我正在創建一個應用程序,需要連接到運行在wifi網絡上的其他設備上的本身版本。目標是在一個設備與其他設備之間建立廣播/客戶端關係。沒有Bonjour的iOS設備發現

我知道Bonjour是可以接受的方法,但我並不願意這樣做,因爲它會將我鎖定到iOS設備中,當我想分支給其他人時,至少對於客戶。

如果我在特定端口(如43231等)上啓動廣播器上的網絡服務器,客戶端設備是否可以獲得自己的IP,然後掃描廣播器的廣播塊範圍?用這樣的請求ping網絡上的所有其他隨機設備有什麼不好嗎?

如在,廣播者是192.168.1.11。客戶端是192.168.1.4。如果客戶端假定所有設備都在192.168.1。*模塊中,它是否可以從1-100左右迭代尋找廣播者?

如果這種方法很瘋狂,我該怎麼辦?

回答

1

可以使用SSDP(由UPnP使用),或只是multicast在網絡上的消息,並在同一時間聽它,忽略了環回(如果你不想發送接收它自己的消息)。

+0

有趣。由於我保持廣播者被動直到事件開始,我實際上可以從客戶端進行組播以「註冊」它們。 – UltimateBrent

+0

是的,我正在使用這種方法來製作類似於Apples AirDrop的應用程序,它的工作非常好。 –

1

也許使用藍牙低功耗進行廣播/發現會更好?您可以在服務器上發送不可連接的廣告數據包(使用其IP地址),並在所有其他設備上監聽它們。設備創建這樣的數據包,讀取IP地址並通過NSURLConnection(或類似的東西)連接到它。

+0

這是什麼範圍? – UltimateBrent

+0

理論上長達50米,但從我的經驗來看,你可以期望在15-20米距離內有好的結果 – igoris