def close(self): """Ends the background threads, and prevent this instance from servicing further queries.""" if globals()['_GLOBAL_DONE'] == 0: globals()['_GLOBAL_DONE'] = 1 self.notifyAll() self.engine.notify() self.unregisterAllServices() mcastsocket.leave_group( self.socket, dns._MDNS_ADDR ) self.socket.close()
def listen( sock, group='FF02:0:0:0:0:2:FF00::' ): try: for i in range( 20 ): rs,wr,xs = select.select( [sock],[],[], .05 ) if rs: data, addr = sock.recvfrom( 65500 ) print 'From:', addr print repr(data) return finally: mcastsocket.leave_group( sock, group )
def listen(sock, group='FF02:0:0:0:0:2:FF00::'): try: for i in range(20): rs, wr, xs = select.select([sock], [], [], .05) if rs: data, addr = sock.recvfrom(65500) print 'From:', addr print repr(data) return 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""" 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 send( sock, data, group='FF02:0:0:0:0:2:FF00::', port=5000 ): try: for i in range(5): sock.sendto( data, (group,port)) finally: mcastsocket.leave_group( sock, group )
def send(sock, data, group='FF02:0:0:0:0:2:FF00::', port=5000): try: for i in range(5): sock.sendto(data, (group, port)) finally: mcastsocket.leave_group(sock, group)