JmDNS, JmmDNS?в чем разница?что использовать в моем комплекте? - PullRequest
2 голосов
/ 06 сентября 2011

Я новичок здесь.Взглянув на библиотеку JmDNS (3.4.1), я не смог четко понять разницу между экземплярами JmDNS и JmmDNS.Я использовал экземпляр JmmDNS для обнаружения сервисов, и он правильно работает в моем приложении.Затем я хотел преобразовать свой код в пакет, однако ничего не работает. Затем, если я использую экземпляр JmDNS в своем пакете, я могу успешно обнаружить службы.Я был бы признателен, если бы кто-то прояснил это для меня.Кроме того, согласно документации, с JmmDNS у нас есть NetworktopologyListener, поэтому мы гарантируем, что сервисы всегда обновляются.Это гарантировано также с экземплярами JmDNS?По этой причине я не решаюсь использовать свой пакет (службы могут не обновляться при изменениях в сети)

Спасибо за помощь

1 Ответ

2 голосов
/ 17 июля 2012

Если вы посмотрите на документацию, документация класса для JmmDNS говорит:

Java Multihomed Multicast DNS

Использует базовый экземпляр JmDNS для каждого InetAddress, найденного на этом компьютере.

Этот класс будет контролировать топология сети изменится, и создаст или уничтожит экземпляры JmDNS как требуется. Вы несете ответственность за обслуживание регистрация (подсказка: используйте NetworkTopologyListener).

Экземпляр JmDNS связан с конкретным Interface и выполняет все необходимое для поддержки ответчика mDNS на этом едином интерфейсе, включая обнаружение службы и объявление.

FWIW, я закончил тем, что писал свои собственные NetworkTopologyListener и JmmDNS, похожие на работу, потому что поставленные из них не очень хорошо работали в моем опыте. Обнаружение интерфейса вообще не работало в некоторых версиях JVM v7 в ранних версиях Windows 7, и его путали со смешанными ситуациями IPv4 и IPv6. Эти двое были экспериментальными в то время.

...