Можно ли запустить несколько респондентов mDNS (для DNS-SD) на одном хосте?

509
Bergi

Я пытаюсь разработать протокол P2P, в котором несколько пользовательских приложений в жилой сети могут обнаруживать друг друга. Я рассмотрел различные протоколы обнаружения служб, в частности DNS-SD с mDNS. Похоже, что он отлично работает для одного клиента, обнаруживающего несколько устройств, а также для одного устройства, предлагающего несколько разных служб, которые были настроены как таковые.

Однако, насколько я понимаю, существует не более одного клиента (который отправляет запросы и кеширует результаты) на хост, и не более одного респондента (который отвечает на запросы) на хост. Так что, если у меня несколько приложений, запущенных на одном компьютере, им нужно будет совместно использовать клиент / респондент - что, по-видимому, создает проблемы, особенно в Windows, которая изначально не предлагает такую ​​услугу. Правильно ли это толкование?

Или возможно, что каждое приложение запускает свой собственный клиент и распознаватель, независимый от других приложений, без конфликтов?

Если ответ «нет», какие могут быть альтернативы?

1
Нет, они все будут конкурировать за порт 5353 / UDP. Windows 10 имеет встроенную поддержку mDNS. Для устаревших версий Windows ваш установщик может установить mDNSResponder. Spiff 6 лет назад 0
@Spiff Спасибо, я так и думал (и я полагаю, что mDNS не справляется с [несколькими прослушивателями на одном и том же порту] (https://stackoverflow.com/a/14388707)). Это проблема только для респондентов или для клиентов? Bergi 6 лет назад 0
mDNS - это одноранговый протокол, а не клиент-сервер. Ожидается, что владелец порта 5353 будет задавать вопросы и отвечать на них. Я почти уверен, что не имеет никакого смысла делать mDNS только для запросов или только для ответов. Вы * хотите *, чтобы один демон в каждой системе был шлюзом для запросов и рекламы, чтобы он мог кэшировать ответы, чтобы протокол не стал слишком болтливым. Spiff 6 лет назад 0
@ Спифф Я ожидал, что будет один демон для запросов и один для рекламы, из которых вы будете только те, которые необходимы. Один демон тоже имеет смысл. Bergi 6 лет назад 0
@Spiff Что касается mDNSResponder, я могу найти только [этот недокументированный проект Apple] (https://opensource.apple.com/source/mDNSResponder/mDNSResponder/mDNSResponder-878.1.1/mDNSWindows/) и [этот старый файл readme] (https: // github.com/jevinskie/mDNSResponder), по-видимому, предполагает, что он будет использоваться для создания нескольких монолитных приложений для Windows, а не одного общего сервиса. Не могли бы вы подробно рассказать, как использовать это в ответе? Или вы имели в виду «Нет, это невозможно, * даже если вы устанавливаете mDNSResponder»? Bergi 6 лет назад 0

0 ответов на вопрос