2010-02-21 6 views
5

나는 몇 대의 상호 연결된 컴퓨터를 가지고있다. 모든 머신에서 Erlang 노드가 실행 중이며 Erlang 용어 (피어 - 투 - 피어 스타일)를 전달하면서 서로 통신하고 싶습니다. 그러나 다른 컴퓨터의 노드는 net_adm:ping 등을 편집 한 후에 만 ​​nodes()에 나열됩니다. 동일한 쿠키를 가진 모든 노드가 LAN에 있는지 (각 컴퓨터에 저장된 이웃 목록없이) 어떻게 찾을 수 있습니까?얼랑 이웃 검색

답변

9

얼랑/OTP에는 LAN 검색 시스템은 현재 없습니다,하지만 당신은 그것에 대해 갈 수있는 몇 가지 방법이 있습니다

  • LAN 서브넷의 목록 읽기 inet:getif(), 다음 각 IP에 대한 (net_kernel():epmd_module()):names(IP) 전화 각 서브넷의 주소로 실행중인 노드의 목록을 수집 한 다음 net_adm : ping()하여 모두 연결합니다. 나는 이것이 핑 (Ping)이 작동하도록 IP를 이름으로 변환 할 수 있도록 DNS 해상도가 작동한다고 가정합니다. (나는 노드 연결에 대한 정확한 요구 사항에 녹슬지 않는다)
  • 각 노드에서 nodefinder과 같은 것을 실행한다. Nodefinder는 멀티 캐스트 udp를 사용하여 LAN상의 Erlang 노드를 검색 할 수있는 검색 라이브러리입니다.
+0

nodefinder는 내가 필요한 것입니다. 감사. –