Zeroconf/Bonjour
来源:互联网 发布:调节阀口径计算软件 编辑:程序博客网 时间:2024/05/22 05:19
Zeroconf苹果设备中也叫Bonjour是一种自发现协议,可以自动搜索发现同一局域网中的设备及服务。
使用前需要安装或者移植avahi-daemon,avahi-daemon安装运行后,就可以进行serveice的publish了,命令如下:
avahi-publish -s identifier type port name
identifier即标识符以后可以用来对终止服务或者重新发起,type需要以._tcp.local.结尾。port为绑定的端口号,最后一个name一般设为主机名也就是最后设备搜索到的名字
再起一个avahi-browse -t 就可以发现上面的发起的服务了,在苹果设备中不需要avahi-browse就可以直接发现了。
要是不要不想单独起一个avahi-daemon的话,可以直接python中的包实现
使用前需要安装或者移植avahi-daemon,avahi-daemon安装运行后,就可以进行serveice的publish了,命令如下:
avahi-publish -s identifier type port name
identifier即标识符以后可以用来对终止服务或者重新发起,type需要以._tcp.local.结尾。port为绑定的端口号,最后一个name一般设为主机名也就是最后设备搜索到的名字
再起一个avahi-browse -t 就可以发现上面的发起的服务了,在苹果设备中不需要avahi-browse就可以直接发现了。
要是不要不想单独起一个avahi-daemon的话,可以直接python中的包实现
from zeroconf import ServiceInfo, Zeroconfclass ZeroconfTest(service.Service, object): service_name = 'Zeroconf Test' Port = None Info = None def __init__(self, factory, portCallback): factory.protocol = BroadcastServerProtocol self.factory = factory self.portCallback = portCallback self.zeroconf = Zeroconf() def StartService(self): self.Port = reactor.listenTCP(0, self.factory) port = self.Port.getHost().port fqdn = socket.gethostname() ip_addr = socket.gethostbyname(fqdn) hostname = fqdn.split('.')[0] wsDesc = {'service': 'myservice', 'version': '1.0.0'} self.Info = ServiceInfo('_myservice._tcp.local.', hostname + ' ' + self.service_name + '_myservice._tcp.local.', socket.inet_aton(ip_addr), port, 0, 0, wsDesc, hostname + '.local.') self.zeroconf.register_service(self.Info) self.portCallback(port) return super(ZeroconfTest, self).StartService() def stopService(self): self.zeroconf.unregister_service(self.Info) self.Port.stopListening() return super(ZeroconfTest , self).stopService()
C++上的实现也与此相类似,也有很多的实现方式,我司一款airplay无线投屏所参考的是XBMC的https://github.com/xbmc/xbmc/blob/master/xbmc/network/Zeroconf.h
0 0
- Zeroconf/Bonjour
- Bonjour/Zeroconf with Arduino
- bonjour
- Bonjour
- bonjour
- Bonjour
- bonjour
- Bonjour
- ZEROCONF是什么
- zeroconf介绍
- zeroconf和avahi
- zeroconf和avahi
- Zeroconf 与 UPnP 技术研究
- Bonjour是什么
- bonjour 概述
- Bonjour小结
- Bonjour 服务
- zeroconf研究笔记(1) ——zeroconf初步认识
- 新浪博客,记事本搬家了。
- (转)造势满分的摩羯智投都存在哪些问题?
- 替换空格
- 构建之法之我见
- 任务堆栈
- Zeroconf/Bonjour
- 安装win10步骤
- Redis
- 图片轮播 定时器
- 从 HTTP 到 HTTPS
- eclipse反编译(插件安装以及jad.exe)
- svn根据版本号查找文件并下载到本地
- (转)智能投顾的中国特色:强需求,大规模,低门槛与巨大提升空间
- 知识库--Akka 事务配置-using jvm(134)