【发布时间】:2011-07-26 18:19:32
【问题描述】:
实现 Zeroconf/bonjour 需要多个套接字吗?我正在固件上实现 bonjour,我的芯片只支持一个插槽。
在我看来至少需要两个: - 一个套接字来监控多播查询和公告 - 至少还有一个套接字来解析并连接到客户端
【问题讨论】:
实现 Zeroconf/bonjour 需要多个套接字吗?我正在固件上实现 bonjour,我的芯片只支持一个插槽。
在我看来至少需要两个: - 一个套接字来监控多播查询和公告 - 至少还有一个套接字来解析并连接到客户端
【问题讨论】:
引用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 实现 - 无论您宣传什么服务,都需要打开更多端口和套接字。
【讨论】:
根据您要实现的目标,您可以使用套接字来侦听多播服务公告、选择服务(例如向用户提供列表)、关闭套接字然后重新使用它来连接到服务。如果您已经选择了一个,则无需继续收听服务公告,并且如果您正在使用的服务已撤回(例如,提供它的设备已关闭),那么您可以返回收听多播寻找替代方案。
【讨论】: