Birbirine bağlı bilgisayarlarım var. Her makinede Erlang düğümü çalışıyor ve birbirleriyle Erlang terimlerini (eşler arası stili) geçerek iletişim kurmak istiyorum. Ancak diğer bilgisayarlardaki düğümler, yalnızca net_adm:ping
edildikten sonra nodes()
'da listelenir. Tüm düğümlerin (aynı tanımlama bilgisiyle) LAN'da (ve her bilgisayarda depolanan komşuların listesi olmadan) nasıl bulunabileceğini öğrenmenin bir yolu var mıdır?Erlang komşu araması
5
A
cevap
9
Erlang/OTP hiçbir Hizmetleri keşif sistemi şu var, ama bu konuda gidebiliriz birkaç yolu vardır:
- LAN alt ağlar listesi için okuma
inet:getif()
ve ardından her IP için(net_kernel():epmd_module()):names(IP)
çağrı Her bir alt ağdaki adres, çalışan düğümlerin listesini toplamak için, net_adm: ping() hepsini bağlamak için. Bu, DNS çözünürlüğünün çalıştığını varsayar, böylece IP'yi bir adaya dönüştürerek pingin çalışmasını sağlayabilirsiniz. (Düğüm bağlantıları için tam gereksinimlere biraz paslıyım) - Her düğümde nodefinder gibi bir şey çalıştırın. Nodefinder, bir LAN'daki Erlang düğümlerini keşfetmek için çok noktaya yayın yapan udp'yi kullanabilen bir keşif kütüphanesidir. Nodefinder tam olarak ihtiyacım olan şeydir.
Teşekkürler. –