'Instantiate a NBNSProtocol instance.
This automatically calls reactor.listenUDP method to start listening for incoming packets, so you **must not** call the listenUDP method again.
:param boolean broadcast: A boolean flag to indicate if we should setup the listening UDP port in broadcast mode
:param integer listen_port: Specifies the UDP port number to bind to for listening. If zero, OS will automatically select a free port number.'

def __init__(self, broadcast=True, listen_port=0):

    self.broadcast = broadcast
    self.pending_trns = {}
    self.transport = reactor.listenUDP(listen_port, self)
    if self.broadcast:
        self.transport.getHandle().setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
    reactor.callLater(1, self.cleanupPendingTrns)
