Для реализации Zeroconf / bonjour требуется несколько сокетов? - PullRequest
0 голосов
/ 26 июля 2011

Требуется ли более одного сокета для реализации Zeroconf / bonjour?Я использую Bonjour для прошивки, и мой чип поддерживает только один сокет.

Мне кажется, что потребуется по крайней мере два: - Один сокет для мониторинга многоадресных запросов и объявлений - Как минимум еще один сокет для разрешения иподключаться к клиентам

Ответы [ 2 ]

0 голосов
/ 18 ноября 2012

В зависимости от того, чего вы пытаетесь достичь, вы можете использовать сокет для прослушивания объявлений службы многоадресной рассылки, выбрать службу (например, предложить список пользователю), закрыть сокет, а затем повторно использовать его для подключения к службе.Вам не нужно продолжать слушать объявления о сервисах, если вы уже выбрали один из них, и если сервис, который вы используете, отозван (например, устройство, предоставляющее его, отключено), то вы можете вернуться к прослушиванию многоадресной рассылки.найти альтернативу.

0 голосов
/ 04 августа 2011

Цитировать 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 - для любой рекламируемой вами службы потребуется больше открытых портов и сокетов.

...