2011-09-06 29 views
2

我是這裏的新手。查看JmDNS庫(3.4.1)時,我無法清楚地看到JmDNS和JmmDNS實例之間的區別。我使用JmmDNS的一個實例來發現服務,它在我的應用程序中正常工作。然後,我想將我的代碼轉換爲一個包,但是沒有任何工作。然後,如果我在我的包中使用JmDNS的實例,我可以成功發現服務。如果有人爲我更清楚,我將不勝感激。 另外,根據文檔,使用JmmDNS我們有一個NetworktopologyListener,所以我們保證服務總是更新。這也保證了JmDNS實例嗎?我猶豫着用我的包因爲這個原因(服務可能不會更新與網絡的變化)JmDNS,JmmDNS?有什麼不同?在我的包中使用什麼?

感謝您的幫助

回答

2

如果你看一下文檔中,JmmDNS類的文件說:

每個InetAddress類此計算機上發現

Java的多宿主多播DNS

採用底層JmDNS實例。

本課程將監測 網絡拓撲結構的變化,並根據需要創建或銷燬JmDNS實例 。您有責任維護服務 註冊(提示:使用NetworkTopologyListener)。

一個JmDNS實例綁定到特定的Interface並執行到單一界面上保持的mDNS響應所需的一切,包括服務發現和公佈。

FWIW,我最終寫了我自己的NetworkTopologyListenerJmmDNS工作相似,因爲提供的那些工作在我的經驗中不能很好地工作。在早期的Windows 7中,接口發現在某些JVM v7版本中完全不起作用,並且它與混合的IPv4和IPv6情況混淆。那兩個在當時是實驗性的。

+0

我有問題沒有得到serviceResolved(只有serviceAdded)。如果我使用list()進行輪詢,那麼我不會總是得到要連接的IP地址。我有兩個網絡接口。你知道什麼可能是錯的嗎?如果我有多個接口,我必須使用JmmDNS嗎?我正在使用JmDNS綁定到我的兩個接口之一的IP地址。感謝任何提示。 – JohnyTex

+1

嘗試從'serviceAdded'調用'dns.getServiceInfo'?如果這沒有幫助,請將您的問題作爲新問題提請注意。 – jackrabbit

+0

謝謝。但是我決定跳過JmDNS,因爲我得出的結論是它不可靠。由於沒有明顯的原因,它只是不會工作,有時配置不變。我切換到mdnsjava,一切正常!沒有更多的JmDNS代表我,但感謝您的評論。 – JohnyTex

相關問題