【问题标题】:Multiple sockets required for Zeroconf/bonjour implementation?Zeroconf/bonjour 实现需要多个套接字?
【发布时间】:2011-07-26 18:19:32
【问题描述】:

实现 Zeroconf/bonjour 需要多个套接字吗?我正在固件上实现 bonjour,我的芯片只支持一个插槽。

在我看来至少需要两个: - 一个套接字来监控多播查询和公告 - 至少还有一个套接字来解析并连接到客户端

【问题讨论】:

    标签: sockets bonjour zeroconf


    【解决方案1】:

    引用rfc

    When this document uses the term "Multicast DNS", it should be taken
    to mean: "Clients performing DNS-like queries for DNS-like resource
    records by sending DNS-like UDP query and response packets over IP
    Multicast to UDP port 5353."
    

    要完全实现 mDNS (Bonjour),您需要一个绑定到 224.0.0.251(保留的 IPv4 地址)的开放套接字和开放端口 5353 以接收查询。

    显然,这仅涵盖 Zeroconf 实现 - 无论您宣传什么服务,都需要打开更多端口和套接字。

    【讨论】:

    • 注意:端口 5353 是默认端口,但可以根据需要更改。
    【解决方案2】:

    根据您要实现的目标,您可以使用套接字来侦听多播服务公告、选择服务(例如向用户提供列表)、关闭套接字然后重新使用它来连接到服务。如果您已经选择了一个,则无需继续收听服务公告,并且如果您正在使用的服务已撤回(例如,提供它的设备已关闭),那么您可以返回收听多播寻找替代方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-30
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 2020-12-16
      相关资源
      最近更新 更多