2011-07-22 148 views
7

對於我的Android應用程序,用戶需要連接到將託管在同一局域網某處的服務器。可以有多臺服務器託管在同一局域網上。爲了方便用戶,我打算掃描Android設備連接的當前LAN,然後列出所有運行服務器的網絡設備,而不是讓用戶將IP輸入到計算機手動。網絡設備發現

我對網絡相當陌生,經過一番搜索後發現我必須使用多播DNS搜索或UDP廣播來檢測其他設備。我還發現了一個名爲jmDNS的不錯的庫,儘管我發現了很少的文檔和示例代碼。難道有人指出我正在爲正在努力拯救我而浪費時間的事情走向正確的方向(主要是如果我在正確的軌道上)?我假設我將不得不修改我的服務器來廣播它在那裏?如果我手動輸入IP到我的應用程序的配置頁面,它完全按預期工作。此外,這隻需要發現Windows電腦,不知道是否重要。提前致謝。

+0

是的,mDNS可能是最好的方式去這裏。您需要在Windows電腦上安裝Bonjour服務,因爲它本身不支持。 – Piskvor

+0

通過安裝,你的意思是一個實際的安裝程序(這可能是一個問題),或者只是將代碼添加到我的服務器,以支持Bonjour? –

+0

我認爲*你可以去「添加到你的服務器」路線,但它會更適合你;到目前爲止,我一直使用Apple的安裝程序:http://en.wikipedia.org/wiki/Bonjour_(software)#Microsoft_Windows_implementation(Mac OS和Linux有本機支持;我相信這項服務可能是iTunes的安裝,所以電腦可能已經有這個) – Piskvor

回答

7

那麼,jmDNS是一個完整的Java庫,您可以使用您的設置。它可以用來發布其他客戶可以搜索的服務。

窗口上的Bounjour服務有點棘手,但它絕對有可能。我想說的更簡單的方法是使用jmDNS進行廣播和發現服務器和客戶端。

+0

我認爲這是我會接近它的方式,謝謝。 –

0

您將在本地局域網上運行jDM或其他服務作爲後臺服務或dameon。