Я реализовал пример кода, приведенный в этом нить. Это работает удовольствие, как и было обещано. К сожалению, он сообщит только о прямых ответах на запрос M-SEARCH, но больше ничего. Я ищу способ просто слушать трансляции SSDP, чтобы захватить поиск другого приложения или уведомить трансляции.
Я пробовал всевозможные конфигурации с TIdUDPServer, но ни одна из них не увенчалась успехом. Я дошел до того, что считаю, что это может быть невозможно.
Я использую Win 8.1 с включенным Network Discovery и MediaServer на другом компьютере в той же сети. Брандмауэр вкл или выкл не имеет значения. Использование API Windows для UPnP работает должным образом, и приложения, использующие UPnP, правильно обнаруживают MediaServer и другие устройства UPnP.
Захватывает ли встроенная в Windows служба UPnP эти трансляции на частоте 239:255:255:250:1900 и не передает ли их дальше? Как я могу просто слушать эти передачи?
TIdIPMCastClient
вместоTIdUDPServer
.TIdIPMCastClient
является многоадресным клиентом UDP и вызываетAddMulticastMembership()
для вас. Просто установите свойствоTIdIPMCastClient.MulticastGroup
для многоадресной группы, к которой вы хотите присоединиться. 25.08.2016WifiManager.createMulticastLock()
требуется, чтобы стек сокетов Android не отбрасывал многоадресные пакеты. Вам придется вызывать это вручную в своем коде, используя среду Delphi JNI Bridge. 15.01.2017127.0.0.1
в качестве IP-адреса своего устройства, что, очевидно, никогда не позволит такой вещи работать. И тот факт, что Apple требует IPv6... то, что казалось простой идеей, превратилось в чудовищное предприятие. 07.10.2017