树莓派零配置网络发现
本文地址:http://tongxinmao.com/Article/Detail/id/324
sudo apt-get install avahi-daemon
安装后即可通过hostname.local而不是IP地址定位这台设备
windows需要安装一个组件Bonjour Print Services for Windows 2.0.2.支持bonjour服务(基于多播mDNS协议)
http://support.apple.com/kb/DL999
Bonjour browser可搜索到同一网络的设备
庆科物联的设备端已经实现了Bonjour协议的主要功能
ANDROID(JAVA) 库: jmdns.jar
https://home.heeere.com/tech-androidjmdns.html
WifiManager wifi = (WifiManager) getSystemService(android.content.Context.WIFI_SERVICE);
lock =wifi.createMulticastLock(getClass().getSimpleName());
lock.setReferenceCounted(false);
lock.acquire();//to receive multicast packets
mJmdns = JmDNS.create();
mJmdns.addServiceListener(type,listener = new ServiceListener() {
public voidserviceResolved(ServiceEvent ev) {
Log.d(“tag”,"Service resolved:"
+ev.getInfo().getQualifiedName()
+ " port:" +ev.getInfo().getPort());
}
public void serviceRemoved(ServiceEventev) {
Log.d(“tag”,"Service removed:" + ev.getName());
}
public void serviceAdded(ServiceEventevent) {
mJmdns.requestServiceInfo(event.getType(),event.getName(), 1);
}
});
addServiceListener的方法,用来说明需要那种类型的服务。只有声明的类型才能被找到,可以声明多个类型。在找到或服务设备离开是时候,会回调ServiceListener的方法。
当不再需要查找服务的时候,需要关闭查找,举例如下:
mJmdns.removeServiceListener(type, listener);
mJmdns.close();
lock.release();
上一篇:嵌入式系统电源电路
下一篇:安卓UDP广播/多播注意事项