2017-11-16 6 views
0

나는 INADDR_ANY를 사용하는 경우 커널이 mcast 멀티 그룹에 가입 할 인터페이스를 선택하는 방법 궁금 :INADDR_ANY가 mcast 그룹에 참여할 때 커널이 IP 주소를 선택하는 방법은 무엇입니까?

struct ip_mreq req; 
req.imr_multiaddr.s_addr = inet_addr(someMcastIP); 
req.imr_interface.s_addr = htonl(INADDR_ANY); 

if ((setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void*) &req, sizeof(req))) < 0) { 
... 
} 

가의 기계에 대한 몇 가지 인터페이스가 있다고 가정 해 봅시다. 커널은 어떻게 선택합니까?

+0

여기서 커널은 Linux 커널 또는? – LethalProgrammer

+0

이 질문을 확인하십시오 : https://stackoverflow.com/a/6894115/7640269 – LethalProgrammer

+0

구체적으로 centos 7 태그를 추가했습니다. 내가 제공 한 링크를 읽었지 만, 내 질문은 약간 다르다. 나는 바인딩 할 때가 아니라 멀티 캐스트 그룹에 가입 할 때 INADDR_ANY를 지정하면 커널이 멀티 캐스트를 어떻게 가져올 지 이해하고자한다. INADDR_ADDR과의 바인딩에 대해 감사! – Hei

답변

0

정적 IP 라우팅 테이블을 사용하여 멤버십 요청을 보내는 위치를 결정합니다.