def __init__(self, bindaddress=None): """Creates an instance of the Zeroconf class, establishing multicast communications, listening and reaping threads.""" globals()['_GLOBAL_DONE'] = 0 if bindaddress is None: try: """Try to find the internet-routing interface so we don't get 127.0.0.1""" s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('www.google.com', 80)) self.intf = s.getsockname()[0] s.close() except: self.intf = socket.gethostbyname(socket.gethostname()) bindaddress = self.intf else: self.intf = bindaddress self.socket = mcastsocket.create_socket((bindaddress, dns._MDNS_PORT)) mcastsocket.join_group(self.socket, dns._MDNS_ADDR) self.listeners = [] self.suppression_queue = [] self.browsers = [] self.services = {} self.cache = dns.DNSCache() self.condition = threading.Condition() self.engine = Engine(self) self.listener = Listener(self) self.reaper = Reaper(self)
def create(group='FF02:0:0:0:0:2:FF00::', port=5000): sock = mcastsocket.create_socket(('::', port), TTL=1, loop=True, reuse=True, family=mcastsocket.socket.AF_INET6) mcastsocket.join_group(sock, group) return sock
def create(group='FF02:0:0:0:0:2:FF00::',port=5000): sock = mcastsocket.create_socket( ('::',port), TTL=1, loop=True, reuse=True, family=mcastsocket.socket.AF_INET6 ) mcastsocket.join_group( sock, group ) return sock
def main(ip): """Create a multicast socket, send a message, check it comes back""" port = PORT sock = mcastsocket.create_socket((ip, port), loop=False) mcastsocket.join_group(sock, GROUP) try: payload = query % locals() while True: sock.sendto(payload, 0, (GROUP, PORT)) print 'Waiting for responses' rs, wr, xs = select.select([sock], [], [], 20.0) if rs: data, addr = sock.recvfrom(2000) handle(sock, data, addr) return 1 finally: mcastsocket.leave_group(sock, GROUP)
def main(ip): """Create a multicast socket, send a message, check it comes back""" port = PORT sock = mcastsocket.create_socket( (ip,port), loop=False ) mcastsocket.join_group( sock, GROUP ) try: payload = query % locals() while True: sock.sendto( payload, 0, (GROUP,PORT)) print 'Waiting for responses' rs,wr,xs = select.select( [sock],[],[], 20.0 ) if rs: data, addr = sock.recvfrom( 2000 ) handle( sock, data, addr ) return 1 finally: mcastsocket.leave_group( sock, GROUP )
def main(ip): """Create a multicast socket, send a message, check it comes back""" sock = mcastsocket.create_socket( (ip,dns._MDNS_PORT), loop=True ) mcastsocket.join_group( sock, dns._MDNS_ADDR ) try: payload = 'hello world' for i in range( 5 ): sock.sendto( payload, 0, (dns._MDNS_ADDR, dns._MDNS_PORT)) print 'Waiting for looped message receipt' rs,wr,xs = select.select( [sock],[],[], 1.0 ) data,(addr,port) = sock.recvfrom( 200 ) if data == payload: print 'Success: looped message received from address %s port %s'%( addr,port, ) return 0 print 'Failure: Looped message not received' return 1 finally: mcastsocket.leave_group( sock, dns._MDNS_ADDR )
def main(ip): """Create a multicast socket, send a message, check it comes back""" sock = mcastsocket.create_socket((ip, dns._MDNS_PORT), loop=True) mcastsocket.join_group(sock, dns._MDNS_ADDR) try: payload = 'hello world' for i in range(5): sock.sendto(payload, 0, (dns._MDNS_ADDR, dns._MDNS_PORT)) print 'Waiting for looped message receipt' rs, wr, xs = select.select([sock], [], [], 1.0) data, (addr, port) = sock.recvfrom(200) if data == payload: print 'Success: looped message received from address %s port %s' % ( addr, port, ) return 0 print 'Failure: Looped message not received' return 1 finally: mcastsocket.leave_group(sock, dns._MDNS_ADDR)
def __init__(self, bindaddress=None): """Creates an instance of the Zeroconf class, establishing multicast communications, listening and reaping threads.""" globals()['_GLOBAL_DONE'] = 0 self.intf = bindaddress = bindaddress or _detect_interface_addr() self.socket = mcastsocket.create_socket( (bindaddress, dns._MDNS_PORT) ) mcastsocket.join_group( self.socket, dns._MDNS_ADDR ) self.listeners = [] self.suppression_queue = [] self.browsers = [] self.services = {} self.servicetypes = {} self.cache = dns.DNSCache() self.condition = threading.Condition() self.engine = Engine(self) self.listener = Listener(self) self.reaper = Reaper(self)
def __init__(self, bindaddress=None): """Creates an instance of the Zeroconf class, establishing multicast communications, listening and reaping threads.""" globals()['_GLOBAL_DONE'] = 0 self.intf = bindaddress = bindaddress or _detect_interface_addr() self.socket = mcastsocket.create_socket((bindaddress, dns._MDNS_PORT)) mcastsocket.join_group(self.socket, dns._MDNS_ADDR) self.listeners = [] self.suppression_queue = [] self.browsers = [] self.services = {} self.servicetypes = {} self.cache = dns.DNSCache() self.condition = threading.Condition() self.engine = Engine(self) self.listener = Listener(self) self.reaper = Reaper(self)
def __init__(self, bindaddress=None): """Creates an instance of the Zeroconf class, establishing multicast communications, listening and reaping threads.""" globals()['_GLOBAL_DONE'] = 0 if bindaddress is None: self.intf = socket.gethostbyname(socket.gethostname()) bindaddress = self.intf else: self.intf = bindaddress self.socket = mcastsocket.create_socket( (bindaddress, dns._MDNS_PORT) ) mcastsocket.join_group( self.socket, dns._MDNS_ADDR ) self.listeners = [] self.browsers = [] self.services = {} self.cache = dns.DNSCache() self.condition = threading.Condition() self.engine = Engine(self) self.listener = Listener(self) self.reaper = Reaper(self)