我正在尝试在我的 LAN 中运行 HTTP 服务器,并希望通过使用另一台台式计算机上的浏览器来访问它。由于我不喜欢手动输入 IP 地址和端口,我尝试使用 jmDNS 设置 mDNS。
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 浏览器应用程序上就好了。可以通过 IP 和端口访问服务器。
在 Windows 7 上,在任何地址栏(Firefox、Chrome、Safari、IE)中输入带有 .local TLD (= http://roseblade.local/ ) 的名称并没有多大作用,而且我的研究表明几乎是徒劳的反正任务。我安装了 Apple Bonjour,但这只有助于运行 Hobbyist Software 的 Bonjour 浏览器。就 Linux 而言,我对 elemantaryOS 和 Midori 进行了同样的尝试,但这也没有用。我目前无法使用 OSX 或 iOS。
如何获得 .local 地址的解析以在我的浏览器(Firefox、Chrome、Linux、OSX 或 Windows7 上的任何设备)中工作?难道我做错了什么?在这一点上,我只想验证 mDNS 是否可以在系统上像这样工作。
也赞赏有关该问题的材料的指针。