2010-02-21 89 views
5

我有幾臺互聯的電腦。在每臺機器上都運行着Erlang節點,我希望通過Erlang條款(對等風格)相互通信。然而,其他計算機上的節點僅在我net_adm:ping編輯了他們之後在nodes()中列出。有什麼方法可以找出所有節點(具有相同的cookie)在LAN上(並且沒有在每臺計算機上存儲鄰居列表)嗎?Erlang鄰居搜索

回答

9

有在二郎山/ OTP沒有LAN發現系統的權利,但有幾個方法,你可以去了解它:

  • inet:getif()局域網子網的列表,然後調用(net_kernel():epmd_module()):names(IP)每個IP地址在每個子網中收集正在運行的節點列表,然後net_adm:ping()它們全部連接。我認爲這是假設DNS解析正在工作,以便您可以將IP轉換爲名稱,以便ping能夠正常工作。 (我對節點連接的確切要求有點生疏)
  • 在每個節點上運行類似nodefinder的東西。 Nodefinder是一個發現庫,可以使用多播udp來發現局域網上的Erlang節點。
+0

nodefinder正是我所需要的。謝謝。 – 2010-02-21 09:54:55