Zeroconf/bonjourを実装するために複数のソケットが必要ですか?私はファームウェアでBonjourを実装しています。私のチップは1つのソケットだけをサポートしています。Zeroconf/bonjourの実装には複数のソケットが必要ですか?
は、少なくとも2つが必要であろう私には思える: - ワンソケットマルチキャストクエリと発表 を監視する - rfcを引用する
Zeroconf/bonjourを実装するために複数のソケットが必要ですか?私はファームウェアでBonjourを実装しています。私のチップは1つのソケットだけをサポートしています。Zeroconf/bonjourの実装には複数のソケットが必要ですか?
は、少なくとも2つが必要であろう私には思える: - ワンソケットマルチキャストクエリと発表 を監視する - rfcを引用する
を解決し、クライアントに接続するには、少なくとも1つの以上のソケット:
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の実装をカバーしています。あなたが宣伝しているサービスには、さらに多くのポートが必要です。&ソケットが開いています。
達成しようとしていることに応じて、ソケットを使用してマルチキャストサービスアナウンスメントを聞き取り、サービスを選択し(たとえば、ユーザにリストを提供する)、ソケットを閉じてからサービスに接続します。すでに選択しているサービスアナウンスメントを引き続き聞く必要はなく、使用しているサービスが取り消されている場合(たとえば、それが供給されているデバイスがオフの場合)、マルチキャストを聞くことに戻ることができます代替案を見つける。
NB:デフォルトはポート5353ですが、必要に応じて変更できます。 –