Моя цель - найти все бесплатные сервисы в сети WIFI, найти их ip / порт и общаться через HTTP.
Служба Bonjour, размещенная на iMac, обнаружена неправильно - имя службы найдено, но port = 0, InetAddress [] = null.
Соединение с той же службой, размещенной на ПК с Windows, работает нормально (та же версия программного обеспечения от одного поставщика) - имя, URL и порт обнаружены правильно.
Браузер службы Bonjour правильно видит обе службы.
JmDNS 3.4.0 используется lib, см. Пример кода (часть кода опущена):
MulticastLock lock = wifi.createMulticastLock(MULTICAST_LOCK_TAG);
lock.setReferenceCounted(true);
lock.acquire();
final InetAddress inetAddress = getLocalIpAddress();
jmdns = JmDNS.create(inetAddress, JMDNS_NAME);
ServiceInfo[] infos = jmdns.list(CAMERA_SERVERS);
if (infos != null && infos.length > 0) {
for (int i = 0; i < infos.length; i++) {
name = infos[i].getName();
InetAddress[] addresses = infos[i].getInetAddresses();
url = addresses[0].getHostAddress();
port = infos[i].getPort();
}
PS. Пробовал dns_sd.jar от Apple, но он опирается на собственный код и не может использоваться в Android.
Есть идеи?
Спасибо.