我有几台相互连接的电脑.在每台机器上都有运行Erlang节点,我想通过Erlang术语(点对点风格)相互通信.但是,其他计算机上的节点nodes()
仅在我net_adm:ping
编辑后才会列出等等.有什么方法可以找出所有节点(具有相同的cookie)在LAN上(并且没有存储在每台计算机上的邻居列表)?
目前在Erlang/OTP中没有LAN发现系统,但有几种方法可以解决它:
读取inet:getif()
LAN子网列表,然后调用(net_kernel():epmd_module()):names(IP)
每个子网中的每个IP地址以收集正在运行的节点列表,然后net_adm:ping()它们全部连接.我认为这假设DNS解析正在工作,以便您可以将IP转换为名称,以便ping可以工作.(我对节点连接的确切要求有点生疏)
在每个节点上运行类似nodefinder的操作.Nodefinder是一个发现库,可以使用多播udp来发现LAN上的Erlang节点.