# can not receive multicast packet with Connectme9210

**URL:** <https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357>\
**Category:** NET+OS\
**Tags:** multicast\
**Created:** [April 3, 2018, 3:08pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357 "2018-04-03T15:08:36Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![jiaxins](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@jiaxins](https://forums.digi.com/u/jiaxins)\
**Post date:** [April 3, 2018, 3:08pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/1 "2018-04-03T15:08:36Z")

</div>

Hi,

My application use UDP multicast, and it work fine with Connectme device.

When I apply same code over Connectme9210 device, it can send multicast packet, but do not receive multicast packet.

What issue cause this, and how to do with this problem?

Thanks for any help.

Jiaxin

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [April 3, 2018, 7:23pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/2 "2018-04-03T19:23:12Z")

</div>

Both ME and ME9210 use the same TCP/iP stack so it should work the same.

---

<div class="post-metadata">

**Author:** ![jiaxins](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@jiaxins](https://forums.digi.com/u/jiaxins)\
**Post date:** [April 4, 2018, 12:10pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/3 "2018-04-04T12:10:19Z")

</div>

Thanks for your answer.

But they use different BSP, maybe there is different setting cause this problem.

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [April 4, 2018, 7:03pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/4 "2018-04-04T19:03:35Z")

</div>

very similar ethernet driver, so it shouldn’t really matter.  
void multicast\_test1(unsigned long thread\_input)  
{  
struct ip\_mreq stMreq;  
int s;  
int result;  
int i;  
int size, len;  
int buffsize = BUFSIZE;  
int one;  
char iTmp;

```
struct ip_mreq mreq; // Used in adding or dropping // multicasting addresses
struct sockaddr_in local_sin,	// Local socket's address
dest_sin, recv_sin, // Holds the source address upon
stFrom; // recvfrom function returns

one = 1;

printf("---- OPEN ----

```

");

```
/* get a datagram socket */
s = socket(AF_INET,SOCK_DGRAM,0);
if (s == -1)
{
error("SOCKET creation error");
}
/*
    Bind a receive port to the socket
*/
memset(&amp;local_sin, 0, sizeof(local_sin));
local_sin.sin_family = AF_INET;
local_sin.sin_port = htons(10000);
local_sin.sin_addr.s_addr = htonl(INADDR_ANY);

result = bind (s, &amp;local_sin, sizeof (local_sin));
if (result == -1)
{
error("BIND error");
}

```

#if 1  
one = 1;  
result = setsockopt(s, SOL\_SOCKET, SO\_REUSEPORT, (char \*)&one, sizeof one);  
if (result == -1)  
{  
error(“SETSOCKOPT error”);  
}  
#endif

```
result = setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *)&amp;buffsize, sizeof(buffsize));
if (result == -1)
{
error("SETSOCKOPT error");
}

result = setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *)&amp;buffsize, sizeof(buffsize));
if (result == -1)
{
error("SETSOCKOPT error");
}

printf("---- JOIN ----

```

");

```
/* join the first multicast group. 224.1.2.4 */
mreq.imr_multiaddr.s_addr = NAInet_addr("224.1.2.4");
mreq.imr_interface.s_addr = INADDR_ANY;

result = setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&amp;mreq, sizeof(mreq));
if (result != 0)
{
error("setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&amp;mreq, sizeof(mreq))");
}

printf("---- TTL ----

```

");  
/\* set TTL to traverse up to multiple routers \*/  
iTmp = 1;  
result = setsockopt(s, IPPROTO\_IP, IP\_MULTICAST\_TTL, (char \*)&iTmp, sizeof(iTmp));  
if (result != 0)  
{  
error(“setsockopt(s, IPPROTO\_IP, IP\_MULTICAST\_TTL, (char \*)&iTmp, sizeof(iTmp))”);  
}

```
printf("---- LOOPBACK ----

```

");  
/\* disable loopback \*/  
iTmp = 0;  
result = setsockopt(s, IPPROTO\_IP, IP\_MULTICAST\_LOOP, (char \*)&iTmp, sizeof(iTmp));  
if (result != 0)  
{  
error(“setsockopt(s, SOL\_SOCKET, IP\_MULTICAST\_LOOP, (char \*)&iTmp, sizeof(iTmp))”);  
}

```
/* receiving message */
for (i = 0; i &lt; 0xffffffff; i++)
{
len = sizeof(stFrom);
result = recvfrom(s, achIn, BUFSIZE, 0, (struct sockaddr_in*)&amp;stFrom, &amp;len);
printf("%d: multicast_test1 receive data length %d from 0x%X

```

", i+1, result, (unsigned)stFrom.sin\_addr.s\_addr);

```
if (result == -1)
{
    error("recvfrom()");
}
}

printf("

```

");

```
printf("---- DELETE ----

```

");  
/\* delete the multicast group. \*/  
mreq.imr\_multiaddr.s\_addr = NAInet\_addr(“224.1.2.4”);

```
result = setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *)&amp;mreq, sizeof(mreq));
if (result != 0)
{
error("setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, (char *)&amp;mreq, sizeof(mreq))");
}

printf("---- TTL ----

```

");

```
/* set TTL to traverse up to multiple routers */
iTmp = 1;
result = setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL, (char *)&amp;iTmp, sizeof(iTmp));
if (result != 0)
{
error("setsockopt(s, IPPROTO_IP, IP_MULTICAST_TTL, (char *)&amp;iTmp, sizeof(iTmp))");
}
printf("---- LOOPBACK ----

```

");

```
/* disable loopback */
iTmp = 0;
result = setsockopt(s, IPPROTO_IP, IP_MULTICAST_LOOP, (char *)&amp;iTmp, sizeof(iTmp));
if (result != 0)
{
error("setsockopt(s, SOL_SOCKET, IP_MULTICAST_LOOP, (char *)&amp;iTmp, sizeof(iTmp))");
}

socketclose(s);

printf("---- FIN ----

```

");  
{  
}  
}

---

<div class="post-metadata">

**Author:** ![jiaxins](https://avatars.discourse-cdn.com/v4/letter/j/71c47a/32.png) [@jiaxins](https://forums.digi.com/u/jiaxins)\
**Post date:** [April 5, 2018, 3:37pm UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/5 "2018-04-05T15:37:38Z")

</div>

Thank LeonidM

I will try with your sample code.

Thanks again.

Jiaxin

---

<div class="post-metadata">

**Author:** ![LeonidM](https://avatars.discourse-cdn.com/v4/letter/l/d26b3c/32.png) [@LeonidM](https://forums.digi.com/u/LeonidM)\
**Post date:** [May 4, 2018, 9:15am UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/6 "2018-05-04T09:15:11Z")

</div>

did this work? Are you using wired or wireless module?

---

<div class="post-metadata">

**Author:** ![mertguler](https://avatars.discourse-cdn.com/v4/letter/m/47e85d/32.png) [@mertguler](https://forums.digi.com/u/mertguler)\
**Post date:** [April 12, 2021, 10:16am UTC](https://forums.digi.com/t/can-not-receive-multicast-packet-with-connectme9210/19357/7 "2021-04-12T10:16:00Z")

</div>

this code didn’t work for me because IP\_ADD\_MEMBERSHIP option for setsockopt line always return -1
