|
以前做的是单播的,UDP数据能正常接收,现在要求组播。我看了下组播相关的程序,定义了RT_LWIP_IGMP。然后在原有的程序基础上加入了netconn_join_leave_group(udp_conn,&ipMultiCast,IP_ADDR_ANY,0);语句。ipMultiCast地址设置的是225.0.0.5,然后我用PC向225.0.0.5,端口10000发送UDP数据,但是板卡接收不到。PC的网段需要跟组播的保持一致么?我PC的IP地址是1.8.84.73,板卡IP地址是1.8.84.214,向225.0.0.5发送数据是不是会发不出去。网上很难找到组播例程,我现在也没什么头绪,请教下做过组播的高手。
以下是我UDP接收程序:
struct netbuf *inbuf;
struct ip_addr ipMultiCast;
enum netconn_igmp jorl = NETCONN_JOIN;
IP4_ADDR(&ipMultiCast, 225, 0, 0, 5);
inbuf=netbuf_new();
/* 创建 UDP 句柄 */
udp_conn = netconn_new(NETCONN_UDP);
//加入组播
netconn_join_leave_group(udp_conn,&ipMultiCast,IP_ADDR_ANY,jorl);
/* 将 UDP 句柄 绑定到本地 IP 地址的 standby_server_port 上*/
netconn_bind(udp_conn, IP_ADDR_ANY,10000);
//接收数据
netconn_recv(udp_conn, &inbuf); |
阿莫论坛20周年了!感谢大家的支持与爱护!!
知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
|