2011-11-02 1 views
0

혼란스러워하는 문제가 있습니다. 예를 들어, 데이터를 수신하기 위해 멀티 캐스트 그룹 239.255.0.1:30001에 가입하려는 경우. 어떤 인터페이스를 바인딩해야합니까? 나는 어떤 사람들이 그 멀티 캐스트 주소 239.255.0.1:30001에 구속한다고 말한다. eth0/eth1과 같은 로컬 컴퓨터 인터페이스에 바인딩하는 방법은 무엇입니까?멀티 캐스트 바인드 인터페이스 문제

+0

참조 : http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t – JHiant

답변

1

타겟팅하는 OS에 따라 다릅니다. Windows의 경우

  • , 로컬 머신 인터페이스의
  • 에 바인드 리눅스 & 맥/아이폰 OS (및 BSD 스타일의 소켓의 가능성이 다른 사용자), 멀티 캐스트 주소에 바인드 코드
  • 는 그와 같은거야 두 Windows 모두에서 작업 중 & Linux, INADDR_ANY (0)에 바인드하십시오. 그런 다음 원하지 않는 트래픽을 필터링해야 할 수도 있습니다. 또한 Mac/iOS에서는 작동하지 않습니다.
+0

감사 당신. 리눅스를 사용하고 있기 때문에 로컬 컴퓨터 인터페이스 대신 멀티 캐스트 주소에 바인드해야하는 이유를 알고 싶습니다. –

+0

@MichaelD 왜 API가 이런 식으로 행동하는지 잘 모르겠습니다. IP_ADD_MEMBERSHIP (및 선택적으로 IP_MULTICAST_IF) sockopts의 경우 인터페이스 주소를 다른 곳에서 사용해야합니다. – simonc