Zeroconf / bonjour实施需要多个插座?

时间:2011-07-26 18:19:33

标签: sockets bonjour zeroconf

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

在我看来至少有两个是必要的:    - 一个监视多播查询和通知的套接字    - 至少还有一个套接字要解析并连接到客户端

2 个答案:

答案 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)

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