查看局域网内所有设备_SEGGER|FIND protocol |快速检索局域网所有设备案例|源码实现...

SEGGER|FIND protocol |快速检索局域网所有设备案例|源码实现

我如何知道它

第一次知道这个工具是在安富莱的公众号上,推送的文章标题是【原创开源应用第6期】基于SEGGER的FIND小软件,快速检索局域网所有设备案例,非常实用。

这篇文章对它的说明是:

1、借助SEGGER的FIND小软件,用户可以快速检索局域网内的所有设备,仅需在设备上插入一小段的UDP代码即可。
2、实现原理是FIND小软件向网络内发UDP广播消息,接收到消息的设备,返回一条FIND格式的信息即可。通过这种方式可以快速检索所有设备的运行状态,IP,MAC等信息,便于管理。
3、关于协议格式的学习,看此贴:https://www.segger.com/products/connectivity/embosip/technology/find-protocol/

好奇之余打开官网,官网对FIND的介绍是:

FIND是一种免费使用的嵌入式设备协议,可以轻松快速地在 LAN 中定位它们。FIND 在几分之一秒内找到支持发现的所有嵌入式设备。由于 ROM 少于300个字节且没有占用任何 RAM,因此可以在任何具有任何TCP/IP堆栈的设备上轻松实现。您可以自由地使用FIND进行任何操作,甚至是商业和闭源软件。

更详细的介绍请打开这两个链接,这里不再展开说。

为什么这么做

当时我看完这篇文章之后花了几分钟时间移植到了我自己用的开发板上,使用的网络协议栈是 NicheStack。在试用之后感觉真的如介绍所说,小巧、实用。由于上位机软件 FIND Discover 是看不到源码的,不禁好奇上位机是如何实现的。

好在官网上给出了 Client 和 Host 的实现原理,大概就是上位机需要监听UDP端口50022,然后每隔一段时间发送一次查询信息,然后等待回应,摘取有效回应。

然后我试着在 WIN32 环境下实现了主机和客户机的代码。其实,实现的原理很简单,没有很多弯弯绕绕,感兴趣的同学可以抓包对比下,官方的实现和我的实现。下面直接给运行结果。

UDPDiscover 运行现象

2cf8570b96ad67fca5aa0b96d05a07cf.png

UDPAnswer 运行现象

73a0d7f299bf0cb0e71bd544568a3930.png

代码在哪里

请参阅 我的 Github 代码页面。

如何联系我

  • 邮箱:songwenshuai@sina.com
  • 主页:songwenshuai
  • 仓库:Github
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值