Exemplo n.º 1
0
 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()
Exemplo n.º 2
0
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 )
Exemplo n.º 3
0
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)
Exemplo n.º 4
0
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)
Exemplo n.º 5
0
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 )
Exemplo n.º 6
0
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 )
Exemplo n.º 7
0
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)
Exemplo n.º 8
0
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 )
Exemplo n.º 9
0
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)