树莓派零配置网络发现

    本文地址:http://tongxinmao.com/Article/Detail/id/324

    1. 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广播/多播注意事项