2024-04-29 21:40:08 发布
网友
我有一些应用程序想用zeroconf显示出来。
Python或sh比较好。欢迎对Linux和OSX提出特定于操作系统的建议
pybonjour似乎没有得到积极的维护。我在用python-zeroconf。
pip install zeroconf
以下是我用来向iOS设备宣布Twisted-Autobahn WebSocket的脚本的摘录:
from zeroconf import ServiceInfo, Zeroconf class WebSocketManager(service.Service, object): ws_service_name = 'Verasonics WebSocket' wsPort = None wsInfo = None def __init__(self, factory, portCallback): factory.protocol = BroadcastServerProtocol self.factory = factory self.portCallback = portCallback self.zeroconf = Zeroconf() def privilegedStartService(self): self.wsPort = reactor.listenTCP(0, self.factory) port = self.wsPort.getHost().port fqdn = socket.gethostname() ip_addr = socket.gethostbyname(fqdn) hostname = fqdn.split('.')[0] wsDesc = {'service': 'Verasonics Frame', 'version': '1.0.0'} self.wsInfo = ServiceInfo('_verasonics-ws._tcp.local.', hostname + ' ' + self.ws_service_name + '._verasonics-ws._tcp.local.', socket.inet_aton(ip_addr), port, 0, 0, wsDesc, hostname + '.local.') self.zeroconf.register_service(self.wsInfo) self.portCallback(port) return super(WebSocketManager, self).privilegedStartService() def stopService(self): self.zeroconf.unregister_service(self.wsInfo) self.wsPort.stopListening() return super(WebSocketManager , self).stopService()
我推荐pybonjour。
或者你可以使用bash:
dns-sd -R <Name> <Type> <Domain> <Port> [<TXT>...]
这在OSX上默认工作。对于其他*尼克斯,请参阅avahi-publish手册页(您可能需要通过首选的包管理器安装该手册页)。
pybonjour似乎没有得到积极的维护。我在用python-zeroconf。
以下是我用来向iOS设备宣布Twisted-Autobahn WebSocket的脚本的摘录:
我推荐pybonjour。
或者你可以使用bash:
这在OSX上默认工作。对于其他*尼克斯,请参阅avahi-publish手册页(您可能需要通过首选的包管理器安装该手册页)。
相关问题 更多 >
编程相关推荐