本帖最后由 radarbq 于 2012-9-16 21:27 编辑
struct ip_addr ipMultiCast;
IP4_ADDR(&ipMultiCast, 224, 1, 1, 1);
#if LWIP_IGMP
igmp_joingroup(IP_ADDR_ANY,(struct ip_addr *)(&ipMultiCast));
#endif
g_upcb = udp_new();
udp_bind(g_upcb, IP_ADDR_ANY, 8899);
udp_connect(g_upcb,&ipMultiCast , 8888); // connect to the remote host
然后发送数据
int udp_sendx(u8_t *data, u16_t len)
{
int ret=-2;
{
struct pbuf *p = pbuf_alloc(PBUF_TRANSPORT,len, PBUF_RAM);
memcpy(p->payload, data, len);
ret = udp_sendto(g_upcb, p,(struct ip_addr *) (&ipMultiCast),8888);
pbuf_free(p);
}
return ret;
}
LWIP_IGMP已置位,板子(LM3S)往224.1.1.1组播地址发送数据,udp测试工具没有收到数据。
请问程序有什么问题?应该是组播地址没有加入成功?igmp_joingroup如何用呢?
谢谢! |