Sample을 다운받아 Multicast 송수신을 처리하고 있습니다.
수신은 인터럽트를 활성화 해서 처리하고 있는데, 자기 자신이 Multicast 패킷을 송신하면 송신 처리 구문이 끝나기전에 수신 인터럽트가 발생하여, 수신 처리 구문에서 getSn_SR() 에 의해 SOCKET_CLOSE가 되버리네요. Window Socket, Java Socket의 경우 Multicast Loop 를 Enable 시켜 자기 자신이 보낸 패킷은 수신받지 않도록 할수 있는데, 어떻게 처리하며 될까요??
샘플코드라면 어떤걸 받으신건가요?
송신처리 구문이 끝나기전이라는 건, Sn_CR = Send 를 내리기전에 수신인터럽터가 들어왔다는건가요?
join packet을 확인하실 때 어떤 방식으로 확인하셨나요?
join packet은 local 기기들로 broadcast 되기 때문에 pc 가 연결된 허브에 디바이스를 연결하시면 pc에서 wireshark로 확인이 가능합니다.
udp multicast group mac 주소는 생성방법이 따로 존재합니다.
broadcast의 mac 주소가 ff:ff:ff:ff:ff:ff 인것 처럼
multicast의 mac 주소는 01:00:5e: ( 0bit + multicast IP address의 하위 23bits ) 입니다.
multicast 통신에 대한 자세한 내용은 아래 자료를 참고하시면 도움이 되실겁니다.
https://forum.wiznet.io/uploads/short-url/nyQQ5ZJcs4dAt11JksePXPUfVTn.pdf