LWIP netconn 组播

LWIP netconn 组播

组播接收 直接上代码

void MulticastRxTask(void *pvParameter)
{ 
 struct netconn *udpconn;
 udpconn = netconn_new(NETCONN_UDP);
 struct ip_addr ipMultiCast;
 IP4_ADDR(&ipMultiCast, 239, 0, 0, 0);
 netconn_bind(udpconn, IP_ADDR_ANY, 5001);
 netconn_join_leave_group(udpconn,&ipMultiCast,IP_ADDR_ANY,NETCONN_JOIN);
 while(1)
 {
  struct netbuf *recebuf;
  netconn_recv(udpconn,&recebuf);
  uint8_t *pData = recebuf->p->payload;
  //pData就是接收到的数据指针
  netbuf_delete(recebuf);
 }
}

组播发送直接调用netconn_sento就可以了,其他部分和普通udp一样

我在调试中发现,组播和其他连接不能共存。例如TCP 一旦TCP连接通了,组播就失效了(直接接收不到消息,或者直接变成任务调度锁死等症状或者由此引发hardfault),如有哪位大神了解,还请指点一下。

你可能感兴趣的:(LwIP,netconn,组播,Multicast)