2014-08-01 4 views
0

두 개의 프로그램이 있습니다.UDP 소켓은 동일한 호스트에서 멀티 캐스트 메시지를 수신하지 않습니다.

프로그램 1.이 프로그램은 네트워크 인터페이스 당 하나의 소켓을 만들고,이 소켓에 대한 기본 멀티 캐스트 인터페이스 ID를 설정하고이를 "interface_addr : some_port"에 바인딩합니다. 프로그램은 소켓을 수신하고 수신 된 데이터를 처리합니다.

프로그램 1이 테스트되었고 네트워크 장치에서 멀티 캐스트를 수신했습니다.

프로그램 2.이 프로그램은 네트워크 인터페이스 당 하나의 소켓을 만들고 멀티 캐스트 요청을 보내고 응답을 처리합니다.

프로그램 2가 테스트되었습니다. 네트워크 장치에서 멀티 캐스트 요청에 대한 응답을받습니다.

문제는 두 프로그램은 하나의 호스트 프로그램에 runned 때 한 프로그램이 요청을 볼 수 있다는 것입니다 만, 와이어 샤크는 프로그램에서 패킷을 보여줍니다 2.

OS : 나는 '어떤 윈도우 7

잘못하고있는거야?

+0

또한 루프백 인터페이스에 'bind'했습니까? – Alnitak

+0

예, 바인딩해도 –

답변

1

여러 개의 소켓이 필요하지 않습니다. 단일 소켓을 INADDR_ANY에 바인딩하고 은 각 인터페이스를 통해 그룹에 차례로 가입하십시오.

+0

힌트를 보내 주셔서 감사합니다. –

1

문제가 해결되었습니다. 클라이언트와 서버 모두에서 MULTICAST_LOOP 옵션을 켜기 만하면됩니다.