[W5300] 각각 다른소켓에 동일한 값을 받으려고 합니다.

[NM7010B+] [WIZ81xMJ] [WIZ820io] [WIZ830MJ] [WIZ550io] 

사용 중인 제품 명을 위와 같이 제목에 명기하시면 더 빠른 응답을 받으실 수 있습니다.
본 Template을 삭제 후 문의 내용을 남겨 주세요. :slight_smile:


멀티캐스트를 이용하여 2번 소켓과 6번소켓에 동일한 값을 받고자 합니다.

처음에는 2번만 사용하여 잘 되었는데.

6번을 추가로 open 하니 동일하게 설정을 하였는데도

데이터가 들어오지 않네요.

설정한 데이터는

Sn_DHAR 에 맥 값으로 01 00 5E 01 01 11 로 2번 6번 소켓에 동일하게 입력
Sn_DPORTR 는 2번 소켓 5000 6번 소켓 5003번으로 겹치지 않게 입력
Sn_DIPR 은 225.01.01.1 로 2번 6번 소켓에 동일하게 입력

값 설정은 위과 같이 하였으며 데이터 유무는

Sn_RX_RSR 값을 리드하여 확인하였습니다.

소켓 2번은 Sn_RX_RSR을 리드하면 데이터가 잡히는데

소켓 6번은 Sn_RX_RSR하였을때 0으로 들어오네요.

잘못하고 있는 부분이 있을까요?

안녕하세요
Sn_DPORTR도 동일하게 입력해보시기바랍니다.

Sn_DPORTR를 각 소켓에 동일하게 5000으로 입력을 하였으나

6번 소켓만 데이터가 읽혀지지 않습니다.

Sn_DHAR 에 맥 값으로 01 00 5E 01 01 11 로 2번 6번 소켓에 동일하게 입력
Sn_DPORTR 는 5000 으로 2번 6번 소켓에 동일하게 입력
Sn_DIPR 은 225.01.01.11 로 2번 6번 소켓에 동일하게 입력

Sn_PORTR 도 2번 6번 소켓 동일하게 5000으로 기입을 하였습니다.

음…추가적봐야 할곳이 있나요?

Sn_DPORTR은 Destination port로 multicast group의 port number이고,
Sn_PORTR은 Source port number입니다.
따라서 DPORTR은 같게, PORTR은 다르게 설정해주세요

음…말씀처럼 해봤는데도 안되네요.

STM32로 FSMC 6400 0000 번지를 이용해서 하는중인데

이상하네요.

2번 Sn_DPORTR 5000
Sn_DIPR 225.1.1.11
6번 Sn_DPORTR 5003
Sn_DIPR 225.1.1.11
이라했을 때

보내는쪽에서 225.1.1.11 포트 5000으로

보내면 2번 Sn_RX_RSR에 잘 들어오고 6번은 안들어오고

보내는쪽에서 225.1.1.11 포트 5003으로

보내면 6번 Sn_RX_RSR에 잘 들어오고 2번에 안들어오는데

2번 Sn_DPORTR 5000
Sn_DIPR 225.1.1.11
6번 Sn_DPORTR 5000
Sn_DIPR 225.1.1.11

으로 하고 보내는쪽에서 225.1.1.11 포트 5000으로 보내면

2번 소켓만 받고 6번은 못받네요.

그밖에 확인해보거나 수정해볼건 없을까요…?

안녕하세요

저희칩에서는 하나의 데이터를 한 소켓에서만 처리할수 있다고합니다.
받을수 있는 소켓이 여러개일 경우 2번 소켓이 priority가 더높기때문에 2번 소켓에서 receive하고 있는것으로 보입니다.

multicast의 경우 2번과 6번으로 같은 destination정보로 설정후 소켓을 오픈할경우 결국 하나의 물리적 공간이 2개가 존재하는 것이기 때문에 둘다 receive할 수 없습니다.

unicast통신에서 같은 source정보로 설정후 소켓을 여러개 오픈하는것과 마찬가지라고 생각하시면 될것 같습니다.

아 그렇군요.

시간내 도움을 주셔서 감사합니다…^^

즐거운 하루 되세요.