在stm32f207+lwip 2.0.2上使用mdns遇到些问题

hold-ln 2018-04-16 04:05:31
mdns: (multicast DNS)

在一个局域网内,用mdns在pc端发现设备。
组播IP地址: 224.0.0.251. 端口号: 5353.
在stm32f207平台上移植好了Lwip 2.0.2协议栈(无操作系统),用静态IP可以与电脑 ping 通。
现在添加了..\lwip-2.0.2\src\apps\mdns下的mdns文件以及包含了..\lwip-2.0.2\src\include\lwip\priv下的相关头文件。

在 lwipopts.h 也打开了相关宏定义:
/* Enable IGMP and MDNS for MDNS tests */
#define LWIP_IGMP 1
#define LWIP_MDNS_RESPONDER 1
#define LWIP_NUM_NETIF_CLIENT_DATA (LWIP_MDNS_RESPONDER)

现在只调用了几个接口函数:如图


用wireshark工具抓包是这样的,如下图:


现在就是不知道的是用的正不正确,自己还需要添加哪些函数才是正确的使用mdns.

有不对的地方可以在评论上请教!

有了解mdns或者对mdns有兴趣的朋友可以一起讨论下。谢谢!

...全文
2233 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
SoulFa_ 2021-04-02
  • 打赏
  • 举报
回复
引用 10 楼 淹死的柚子 的回复:
我根据官方手册修改lwipopt.h中相关宏定义后,调用三个接口 mdns_resp_init();mdns_resp_add_netif(&gnetif,"xxx",3600);mdns_resp_add_service(&gnetif,"xxx","_udp", DNSSD_PROTO_TCP,5353,3600,srv_txt,NULL);提示以下错误: Assertion "igmp_joingroup_netif: attempt to join on non-IGMP netif" failed at line 495 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c Assertion "igmp_lookup_group: first group must be allsystems" failed at line 268 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c 不知道是否你也有遇见过?谢谢!
大概是netif结构体的属性没设置好,要把组播属性(IGMP)打开
hold-ln 2019-01-03
  • 打赏
  • 举报
回复
引用 10 楼 淹死的柚子 的回复:
我根据官方手册修改lwipopt.h中相关宏定义后,调用三个接口 mdns_resp_init();mdns_resp_add_netif(&gnetif,"xxx",3600);mdns_resp_add_service(&gnetif,"xxx","_udp", DNSSD_PROTO_TCP,5353,3600,srv_txt,NULL);提示以下错误: Assertion "igmp_joingroup_netif: attempt to join on non-IGMP netif" failed at line 495 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c Assertion "igmp_lookup_group: first group must be allsystems" failed at line 268 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c 不知道是否你也有遇见过?谢谢!
不好意思,现在才看到。目前我是在LWIP 1.3.1上用mdns报文格式来处理一些东西(用udp=5353)来模拟的,没有在LWIP2.0.2上做MDNS,仅在LWIP2.0.2上学习MDNS;在STM32F207上有移植LWIP2.0.2,也在用DHCP和UDP,你发个邮箱,发份代码给你
淹死的柚子 2018-12-29
  • 打赏
  • 举报
回复
我根据官方手册修改lwipopt.h中相关宏定义后,调用三个接口
mdns_resp_init();mdns_resp_add_netif(&gnetif,"xxx",3600);mdns_resp_add_service(&gnetif,"xxx","_udp", DNSSD_PROTO_TCP,5353,3600,srv_txt,NULL);提示以下错误:
Assertion "igmp_joingroup_netif: attempt to join on non-IGMP netif" failed at line 495 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c
Assertion "igmp_lookup_group: first group must be allsystems" failed at line 268 in ..\..\USER\lwip-2.0.2\src\core\ipv4\igmp.c
不知道是否你也有遇见过?谢谢!
淹死的柚子 2018-12-29
  • 打赏
  • 举报
回复
具体描述即为移植2.0.2后能实现tcp通信。
淹死的柚子 2018-12-28
  • 打赏
  • 举报
回复
还是有两个问题想问一下,谢谢!
1、野火的探索板的程序原本是1.4.1,我用2.0.2 版本的相关文件替换之前1.4.1版本的文件,问题很多。。目前发现最主要的是2.0.2版本中的netif结构体中没有dhcp成员,但是1.4.1中是有的。 想了解一下你是怎么移植的,有没有好的参考资料能提供一下。谢谢!
2、你之前用2.0.2做的尝试中,不是抓到了mdns的包了吗,既然这样,电脑获取了信息不是就行了?想知道怎样才算是正确使用了。
谢谢指教!
hold-ln 2018-12-27
  • 打赏
  • 举报
回复
引用 4 楼 淹死的柚子 的回复:
请问咨询一下netif是怎么注册的吗,我这里用的原子的例程,感觉netif注册不对,是不是要另外自己写注册
是的, 要设置MAC, ip,子网掩码,网关,
hold-ln 2018-12-27
  • 打赏
  • 举报
回复
引用 3 楼 迷雾绿洲 的回复:
应该解决了吧,能共享出来就好了
没有解决,还在研究MDNS中
hold-ln 2018-12-27
  • 打赏
  • 举报
回复
引用 2 楼 淹死的柚子 的回复:
最近也在准备做这个,不知道楼主怎么样了,能否贴点经验总结
好几个月做的这个,没在LWIP2.0.2上实验成功, 当时时间比较紧,在LWIP 1.3.1上用mdns报文格式来处理一些东西,跟DNS格式差不多的,,目前有时间还在探索
淹死的柚子 2018-12-26
  • 打赏
  • 举报
回复
请问咨询一下netif是怎么注册的吗,我这里用的原子的例程,感觉netif注册不对,是不是要另外自己写注册
fly 100% 2018-12-22
  • 打赏
  • 举报
回复
应该解决了吧,能共享出来就好了
淹死的柚子 2018-12-20
  • 打赏
  • 举报
回复
最近也在准备做这个,不知道楼主怎么样了,能否贴点经验总结
hold-ln 2018-07-16
  • 打赏
  • 举报
回复
自己顶一下!!!!!!

27,510

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧