实施Zeroconf / bonjour需要多个插座吗?我正在固件上实现bonjour,而我的芯片只支持一个插槽。
在我看来至少有两个是必要的: - 一个监视多播查询和通知的套接字 - 至少还有一个套接字要解析并连接到客户端
答案 0 :(得分:0)
引用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实施 - 无论您宣传什么服务,都需要更多端口&插座打开。
答案 1 :(得分:0)
根据您要实现的目标,您可以使用套接字侦听多播服务公告,选择服务(例如向用户提供列表),关闭套接字然后重复使用它以连接到服务。如果您已经选择了一个服务公告,并且如果您正在使用的服务被撤销(例如,提供它的设备已关闭),则您无需继续收听服务通告,那么您可以回去收听多播寻找替代方案。