我正在开发一个带有嵌入式with服务器的控制设备。web服务器为请求它的任何web浏览器提供了一个控制接口(来自Windows浏览器、Mac浏览器、iPhone android等)。
我遇到的问题是一般知道如何访问设备的一般方法。即在web浏览器中键入什么地址。
固定IP对于我的用户来说太过技术含量,而且可能会出错,因为我的设备可能会插入许多不同的本地网络。对于某些平台,使用uPnp服务发现需要在客户机上运行软件,并且不像简单地键入web地址那样自然。我想实现名称解析。
我目前的实现使用netbios协议。因此,我可以在windows浏览器上输入//controller/,它可以工作,但这在Mac或智能手机上不起作用。此外,我还可以尝试实现苹果mDnsresponder,这应该会让Mac和iPhones玩得开心(尽管我认为我当时只限于//mDnsresponder/)。也许Android,Symbian等也有类似的东西,但没有更通用的解决方案来创建一个网络名称,我可以尝试一下吗?
该平台目前基于TI Cortex M3处理器和lwIP。
任何关于如何找到解决方案的帮助或建议都是非常感谢的。
致以亲切的问候,
鲍勃
发布于 2011-02-22 17:20:10
我认为你可以使用DynDns (www.dyndns.org),它对你想做的事情是免费的。你可以使用它,即使你没有可能得到一个固定的ip地址。在这种情况下,您可以使用dyndns updater实用程序。例如,您可以注册ourCompanyName.dyndns.org,它将始终被路由到您的本地计算机。
发布于 2011-09-29 06:16:59
为了让Windows用户能够使用Zeroconf“自动”找到你的设备,他们需要:
Bonjour for Windows与Internet Explorer插件捆绑在一起,该插件对项目#2来说足够了,而且对用户来说可能不会太过技术化。(他们只需下载并安装Windows版的Bonjour,然后勾选复选框,即可安装Internet Explorer插件。)Mac用户可以只使用Safari浏览器,它已经支持Zeroconf。
最后一块拼图-也是最棘手的部分--是你必须修改你自己的软件来注册你的控制器到“本地mDNS守护进程”。然而,没有这样的事情,大概是因为你的“控制设备”是一个嵌入式系统。因此,您需要编写自己的主干mDNS守护进程。这并不难做到,您可以使用苹果的mDNSPosix代码作为起点。但是,根据您的硬件限制,这可能不可行。
总而言之,Zeroconf可能是一个难以使用的协议堆栈。“零配置”方面只适用于用户的体验。对于开发人员来说,它呈现了一个相当陡峭的学习曲线。如果您的用户通常只有一个设备实例在运行,这可能有点夸张。
https://stackoverflow.com/questions/2972477
复制相似问题