当前位置: 首页>>代码示例>>Python>>正文


Python Zeroconf.registerService方法代码示例

本文整理汇总了Python中zeroconf.Zeroconf.registerService方法的典型用法代码示例。如果您正苦于以下问题:Python Zeroconf.registerService方法的具体用法?Python Zeroconf.registerService怎么用?Python Zeroconf.registerService使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在zeroconf.Zeroconf的用法示例。


在下文中一共展示了Zeroconf.registerService方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: PublishService

# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class PublishService(Service):
    """Service implementing zeroconf publishing service for chains master servers"""

    def onInit(self):
        log.info('Zeroconf publish init')
        self.ip_addr = self._get_ip()
        self.hostname = socket.gethostname()
        self.services = []
        self.desc = {'Description': 'Chains Home Automation service on rabbitmq'}
        self.amqp_info = ServiceInfo("_amqp._tcp.local.",
                                     "Chains Master AMQP %s._amqp._tcp.local." % self.hostname,
                                     socket.inet_aton(self.ip_addr), 5672, 0, 0,
                                     self.desc, "%s.local." % self.hostname)
        self.service.append(self.amqp_info)
        self.zeroconf = Zeroconf()

    def onStart(self):
        log.info('Starting zeroconf publishing service')
        for info in self.services:
            self.zeroconf.registerService(info)

    def _get_ip(self):
        sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        sock.connect(('google.com', 80))
        ip = sock.getsockname()[0]
        sock.close()
        return ip
开发者ID:olekenneth,项目名称:chains,代码行数:29,代码来源:__init__.py

示例2: __init__

# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class ServerPublisher:

    def __init__(self):
        self.zero_conf = Zeroconf()

    def publish(self, host, port):
        log.debug('publishing server at %s:%s' % (host, port))
        hostname = gethostname()
        service_info = ServiceInfo("_checkers._tcp.local.", "%s._checkers._tcp.local." % hostname,
                                   inet_aton(host), port, 0, 0, {}, server=hostname + '.local')
        self.zero_conf.registerService(service_info)

    def shutdown(self):
        log.debug('shutting down server publisher')
        self.zero_conf.unregisterAllServices()
        self.zero_conf.close()
开发者ID:batkinson,项目名称:checkers,代码行数:18,代码来源:threaded_server.py

示例3: Broadcast

# 需要导入模块: from zeroconf import Zeroconf [as 别名]
# 或者: from zeroconf.Zeroconf import registerService [as 别名]
class Broadcast(object):
    """
    A zeroconf listener that broadcasts the address for the printing service
    """

    def __init__(self, address, port):
        self.address = address
        self.port = port
        self.properties = {
            'nickname': u'Printer Nickname',
            'service': u'Tryton POS'
        }
        self.service = Zeroconf()
        self._service_info = None

    @property
    def service_info(self):
        if self._service_info is None:
            self._service_info = ServiceInfo(
                "_trytonpos._tcp.local.",
                "%s._trytonpos._tcp.local." % socket.gethostname(),
                socket.inet_aton(self.address), self.port, 0, 0,
                self.properties
            )
        return self._service_info

    def register_zeroconf(self):
        """
        Register a new service for printing
        """
        print("Registration of service @ %s:%s" % (self.address, self.port))
        self.service.registerService(self.service_info)

    def unregister_zeroconf(self):
        """
        Unregister the given service
        """
        print("Unregistering...")
        self.service.unregisterService(self.service_info)
        self.service.close()
开发者ID:openlabs,项目名称:zeropos,代码行数:42,代码来源:broadcast.py


注:本文中的zeroconf.Zeroconf.registerService方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。