0

Zeroconf / bonjourを実装するには複数のソケットが必要ですか?ファームウェアにbonjourを実装していますが、チップは1つのソケットしかサポートしていません。

私には少なくとも2つ必要だと思われます:-マルチキャストクエリとアナウンスを監視するための1つのソケット-解決してクライアントに接続するための少なくとももう1つのソケット

4

2 に答える 2

0

達成しようとしていることに応じて、ソケットを使用してマルチキャストサービスのアナウンスをリッスンし、サービスを選択し(たとえば、ユーザーにリストを提供する)、ソケットを閉じてから再利用してサービスに接続できます。選択するサービスをすでに選択している場合は、サービスアナウンスを聞き続ける必要はありません。使用しているサービスが取り消された場合(たとえば、サービスを提供しているデバイスがオフになっている場合)、マルチキャストのリスニングに戻ることができます。代替案を見つけるために。

于 2012-11-17T23:19:25.233 に答える
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の実装をカバーしているだけです。宣伝しているサービスが何であれ、より多くのポートとソケットを開く必要があります。

于 2011-08-04T09:10:30.047 に答える