最近需要用到组播,用的是LWIP + ENC28J60 。经过一番配置后,现在的情况是:可以接收到组播数据,但是发送组播数据,TCP/IP调试助手收不到组播数据,wireshark抓包也没发现发送的数据。
我的配置:
1.直接把ENC28J60的ERXFCON寄存器设置为0,可以接收所有数据包。
2.lwip的opt.h中设置LWIP_IGMP为1,开启组播
3.low_level_init函数中 ne
tif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP | NETIF_FLAG_IGMP;//添加IGMP
4.定时调用 igmp_tmr();
5.UDP初始化中添加
IP4_ADDR(&ipgroup, 230,0,0,11);//添加组播地址
igmp_joingroup(IP_ADDR_ANY,(struct ip_addr *)(&ipgroup));
udp_bind(udp_server_
PCB,IP_ADDR_ANY,1177);
udp_bind(udp_server_pcb,&ipgroup,65000);
udp_recv(udp_server_pcb,udp_server_rev,NULL);//接收回调函数
6.发送组播数据用
udp_sendto(udp_server_pcb, p,(struct ip_addr *) (&ipgroup),65000);
有高手知道怎么回事吗?