OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6627|回复: 5

LWIP udp netconn 怎么接收广播

[复制链接]

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-4-22
在线时间
37 小时
发表于 2017-7-18 11:21:40 | 显示全部楼层 |阅读模式
5金钱
LWIP udp netconn 怎么接收广播,调用哪个API。接收到广播数据后怎么回复发送广播的主机?

最佳答案

查看完整内容[请看2#楼]

恩,我实现了,我用的是 g_pcb = udp_new(); udp_bind(g_pcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT); udp_recv(g_pcb,udp_server_recv,NULL); void udp_server_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p,struct ip_addr *addr, u16_t port) { struct ip_addr destAddr = *addr; destipaddr2 = *addr; if(p != NULL) { printf("\r\nIP:%d.%d.%d.%d",((uint32_t)(destAddr.addr)>>0&0xff),((uint32_t)(d ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-4-22
在线时间
37 小时
 楼主| 发表于 2017-7-18 11:21:41 | 显示全部楼层
恩,我实现了,我用的是

g_pcb = udp_new();
udp_bind(g_pcb,IP_ADDR_BROADCAST,UDP_DEMO_PORT);
udp_recv(g_pcb,udp_server_recv,NULL);

void udp_server_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p,struct ip_addr *addr, u16_t port)
{
        struct ip_addr destAddr = *addr;
        destipaddr2 = *addr;
        if(p != NULL)
        {
                printf("\r\nIP:%d.%d.%d.%d",((uint32_t)(destAddr.addr)>>0&0xff),((uint32_t)(destAddr.addr)>>8)&0xff,((uint32_t)(destAddr.addr)>>16)&0xff,((uint32_t)(destAddr.addr)>>24)&0xff);
                printf("\r\nport:%d",port);       
                udp_flag = 1;
                udp_sendto(pcb,p,&destAddr,port);
                pbuf_free(p);                
        }
}


udp_flag 是标记收到广播数据,发送函数用的是原子哥的教程里的发送函数,这个子函数里的udp_sendto(pcb,p,&destAddr,port); 是发送不成功,我也不知道原因各参数都是正确的
回复

使用道具 举报

9

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
165
金钱
165
注册时间
2016-4-22
在线时间
37 小时
 楼主| 发表于 2017-7-18 11:28:33 | 显示全部楼层
本帖最后由 huoyancool 于 2017-7-18 14:26 编辑

论坛里好多都是 利用socket的,我想知道的是ucos集成lwip 怎么实现呢? 还有接收到广播后怎么确定发送广播的主机IP
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-7-19 01:55:13 | 显示全部楼层
帮顶
回复

使用道具 举报

19

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-10-19
在线时间
42 小时
发表于 2017-7-19 10:23:32 | 显示全部楼层
广播帧的接收 是底层做的吧   接收广播帧  跟 正常帧 的回调应该是一样的   你说话的广播帧  是目的IP是广播的  但是他的源IP不是广播的   所以  收到广播帧 后 里面有源ip地址
回复

使用道具 举报

12

主题

73

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2017-5-2
在线时间
45 小时
发表于 2017-10-9 18:52:21 | 显示全部楼层
大哥,有udp 广播或者组播的代码吗?能不能给一个参考一下?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 22:27

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表