Я пытаюсь запустить HTTP-сервер в своей локальной сети и хочу получить к нему доступ с помощью браузера на другом настольном компьютере. Поскольку мне не нравится вводить IP-адрес и порт вручную, я попытался настроить mDNS с помощью jmDNS.
String type = "_http._tcp.local.";
jmdns = JmDNS.create();
jmdns.addServiceListener(type, listener = new ServiceListener() {
@Override
public void serviceResolved(ServiceEvent ev) {
Log.d(LogTag.SERVER, "Service resolved: " + ev.getInfo().getQualifiedName() + " port:"
+ ev.getInfo().getPort());
}
@Override
public void serviceRemoved(ServiceEvent ev) {
Log.d(LogTag.SERVER, "Service removed: " + ev.getName());
}
@Override
public void serviceAdded(ServiceEvent event) {
// Required to force serviceResolved to be called again (after the first search)
jmdns.requestServiceInfo(event.getType(), event.getName(), 1);
}
});
serviceInfo = ServiceInfo.create(type, NAME, PORT, "test service");
jmdns.registerService(serviceInfo);
Запись mDNS прекрасно отображается в приложении ZeroConf Browser. Сервер доступен по IP и порту просто отлично.
В Windows 7 введите имя с доменом верхнего уровня .local (= http://roseblade.local/) в любой адрес bar (Firefox, Chrome, Safari, IE) мало что делает, и, судя по моим исследованиям, в любом случае это бесполезная задача. Я установил Apple Bonjour, но это помогло только запустить браузер Bonjour от Hobbyist Software. Что касается Linux, я пробовал то же самое с elemantaryOS и Midori, но это тоже не сработало. OSX или iOS в настоящее время мне недоступны.
Как я могу заставить разрешение адреса .local работать в моем браузере (Firefox, Chrome, что угодно в Linux, OSX или Windows7)? Я делаю что-то неправильно? На данный момент я просто хотел бы убедиться, что mDNS может работать так в системе.
Указатели на материалы по проблеме также приветствуются.