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),如有哪位大神了解,还请指点一下。
上述问题已经解决 原因是其他任务的任务栈设置过小 栈溢出了 覆盖了这个任务的相关部分