c/c++语言开发共享Zeroconf名称解析

我正在开发一个带有嵌入式网络服务器的控制设备。 Web服务器为任何请求它的Web浏览器提供控制接口(从Windows浏览器,Mac浏览器,iPhone android等)。

我遇到的问题是通常知道如何访问设备的一般方法。 即在Web浏览器中输入什么地址。

固定IP对我的用户来说太技术了,可能会出错,因为我的设备可以插入许多不同的本地网络。 使用uPnp服务发现需要在某些平台上在客户端上运行软件,并不像只键入Web地址那样自然。 我想实现名称解析。

我当前的实现使用netbios协议。 因此,从Windows浏览器我可以键入// controller /并且它可以工作,但这不适用于Mac或智能手机。 我还可以尝试实现苹果mDnsresponder,它应该让Mac和iPhone玩得开心(虽然我认为我只限于//controller.local/)。 也许类似的东西也存在于Android,Symbian等,但是没有一个更通用的解决方案来创建一个我可以尝试的网络名称?

该平台目前基于TI Cortex M3处理器和lwIP。

任何有关如何找到解决方案的帮助或建议都非常感谢。

亲切的问候,

短发

    我想你可以使用DynDns(www.dyndns.org),它可以免费用于你想要做的事情。 即使您无法获得固定的IP地址,也可以使用它。 在这种情况下,您将使用dyndns updater实用程序。 您可以注册myCompanyName.dyndns.org,它将始终路由到您的本地计算机。

    为了让Windows用户能够使用Zeroconf“自动”找到您的设备,他们需要:

    Bonjour for Windows捆绑了一个适用于第2项的Internet Explorer插件,对于您的用户来说可能不是“太技术”。 (他们只需要下载并安装适用于Windows的Bonjour并勾选该框以安装Internet Explorer插件。)Mac用户可以使用已经支持Zeroconf的Safari浏览器。

    这个难题的最后一部分 – 也是最棘手的部分 – 是你必须修改自己的软件,用“本地mDNS守护进程”注册你的控制器。 但是,大概没有这样的事情,因为你的“控制设备”是一个嵌入式系统。 所以你需要编写自己的骨架mDNS守护进程。 这并不难,您可以使用Apple的mDNSPosix代码作为起点。 但是,根据您的硬件限制,这可能不可行。

    总而言之,Zeroconf可能是一个棘手的协议栈。 “零配置”方面仅适用于用户体验。 对于开发人员来说 ,它呈现出相当陡峭的学习曲线。 如果您的用户通常只有一个设备实例正在运行,则可能过度。

    需要了解更多c/c++开发分享Zeroconf名称解析,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享Zeroconf名称解析相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/979116.html

      (0)
      上一篇 2021年12月12日
      下一篇 2021年12月12日

      精彩推荐