用Jmdns的注册服务、方法的使用

来源:互联网 发布:起凡刷通宝软件 编辑:程序博客网 时间:2024/05/01 13:07

    Jmdns在本地局域网中Java实现的注册与发现的服务,用于通信、发送信息,最近在使用这个jmdns,研究了一下,分享一下。

关于ServiceAdded方法说明:用来获取设备信息的已封装的方法,获取设备的信息,但是有时ServiceInfo为null,但是这个每次测试的结果都至少有一个ServiceInfo不为空,这个和设备有点关系。这种几率还是很小的


import java.io.IOException;import java.util.logging.ConsoleHandler;import java.util.logging.Level;import java.util.logging.Logger;import javax.jmdns.JmDNS;import javax.jmdns.ServiceEvent;import javax.jmdns.ServiceListener;import javax.jmdns.ServiceTypeListener;/** * 创建日期:2014-12-23 下午07:54:40 * 项目名称:JmdnsTest  * @author NantiJiang * @version 1.0 * @since JDK 1.6.0_21 * 文件名称: DiscoverServices.java * 类说明: */public class DiscoverServices {    static class SampleListener implements ServiceListener  ,ServiceTypeListener{            //serviceAdded 方法会自动返回搜索到服务的相关信息,比如一般都会带有ip地址、端口、serviceInfo信息,这些信息一般都是搜索到的注册的设备的信息,用这个方法就可以拿到设备的所有信息    //有的时候这个信息ServiceInfo的值是null,这个几率不是很大,但是和手机的硬件设备有点关系(htc e1搜索不是很乐观、ASUS me302c和三星GT-I8160不错),看情况通常很少    @Override        public void serviceAdded(ServiceEvent event) {            System.out.println("Service added   : " + event.getName() + "." + event.getType());        }        //移除某一个服务        @Override        public void serviceRemoved(ServiceEvent event) {            System.out.println("Service removed : " + event.getName() + "." + event.getType());        }        @Override        public void serviceResolved(ServiceEvent event) {//什么时候监听接口回调该方法            System.out.println("Service resolved: " + event.getInfo());        }        //搜索局域网设备的type,该方法和ServiceAdded很像,但是这个方法不到serviceInfo,event的serviceInfo是为null@Overridepublic void serviceTypeAdded(ServiceEvent event) { System.out.println(" serviceTypeAdded: " + event.getInfo());}@Overridepublic void subTypeForServiceTypeAdded(ServiceEvent event) {System.out.println(" subTypeForServiceTypeAdded: " + event.getInfo());}    }    /**     * @param args     *            the command line arguments     */    public static void main(String[] args) {        try {            // Activate these lines to see log messages of JmDNS            boolean log = false;            if (log) {                Logger logger = Logger.getLogger(JmDNS.class.getName());                ConsoleHandler handler = new ConsoleHandler();                logger.addHandler(handler);                logger.setLevel(Level.FINER);                handler.setLevel(Level.FINER);            }            final JmDNS jmdns = JmDNS.create();            String type = "_http._tcp.local.";            if(args.length > 0) {                type = args[0];            }            jmdns.addServiceTypeListener(new SampleListener());//事实证明,执行到这个方法时会去回调(该监听的相关方法)serviceAdded、serviceRemove、serviceresolved            jmdns.addServiceListener(type, new SampleListener());//执行到这个方法的时候,会去回调(该监听的相关方法)serviceTypeAdded、subTypeForServiceTypeAdded              System.out.println("Press q and Enter, to quit");            int b;            while ((b = System.in.read()) != -1 && (char) b != 'q') {                /* Stub */            }            jmdns.close();            System.out.println("Done");        } catch (IOException e) {            e.printStackTrace();        }    }}


下面图是用ExpandableListView






本文由NantiJey原创总结,如需转载请标明出处 :http://blog.csdn.net/jss4j/article/details/42107927


资源下载地址:http://download.csdn.net/detail/hiberatejss/8292069



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大车行驶证丢了怎么办 车的产权证丢了怎么办 车子行驶证掉了怎么办 定期的存折丢了怎么办 存折密码输错6次怎么办 营业执照原件丢失怎么办怎么注销 违章扣了14分怎么办 c1驾驶本过期了怎么办 考驾照没带身份证怎么办 上海扣满12分怎么办 美宝旅行证丢失怎么办 汽车证件全丢了怎么办 车的行驶本丢了怎么办 车和行驶证丢了怎么办 考驾照人在外地怎么办 外地考驾照没有居住证怎么办 考驾驶证预约密码忘了怎么办 考驾照密码忘了怎么办 考驾照的密码忘了怎么办 手机银行登录密码忘了怎么办 宽带账号或密码错误怎么办 车险过户联系不上原车主怎么办 换车了etc忘拆了怎么办 c1d驾驶证d证到期了怎么办 摩托车驾驶证过五年怎么办 没居住证想上东莞牌怎么办 外地考驾照需要暂住证怎么办 考驾照期间暂住证过期怎么办 b2驾照扣了6分怎么办 c1驾照扣了11分怎么办 c1驾驶证分扣9分怎么办 驾驶证c照扣6分怎么办 驾照过期1个月怎么办 上海驾驶证b证扣分怎么办 临时牌驾照丢了怎么办 行驶证年审过期两年怎么办 驾证到期了没换怎么办 在非洲被蚊子咬怎么办 身份证丢了被非法贷款怎么办 未满16岁怎么办身份证 放弃继承权后想反悔怎么办