用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
- 用Jmdns的注册服务、方法的使用
- Android通过JmDNS查找和注册设备的方法
- Android 使用JmDNS查找和注册设备
- Windows 注册 Services 服务的方法
- SC命令注册服务的方法
- windows系统服务的注册及运行服务方法
- windows系统服务的注册及运行服务方法收藏
- windows系统服务的注册及运行服务方法
- android服务_使用服务注册特殊的广播接收者
- 二、服务注册和服务发现-Eureka 的使用
- JmDNS 多设备注册及查找
- 服务的注册
- Spark的注册服务
- 获取注册的服务
- 灰鸽子注册成系统服务的方法--参考用于黑洞
- 把程序注册为服务的几种方法
- 将bat文件注册为windows系统服务的方法
- osgi注册服务和servlet的两种方法
- Solr的一些查询参数
- 总结:自动生成网页截图(Screenshot)方法
- iOS中多线程编程
- [C++]LeetCode: 53 Unique Binary Search Trees
- java连接oracle,完全正确却没有数据
- 用Jmdns的注册服务、方法的使用
- Android NDK开发起步Hello Jni 及NDK开发环境搭建
- cocos2d-x多分辨率适配方案:setDesignResolutionSize详解
- 模板:<bits/_Stack.h>
- write drain
- IOS中的本地存储
- 【Android】app开发第一步:用ViewPager和SharedPreferences类设置app的引导界面
- Windows NDK 开发调试遇到问题及解决方
- Type Qualifiers in C and C++