'See Server.get_applications_async'

def get_applications_async(self, client_port, server_addr, server_port, callback, timeout=10):

    self.last_used = time.time()
    txid = self.next_txid
    family = (socket.AF_INET6 if (':' in server_addr) else socket.AF_INET)
    message = unicode(('%d    tcp_client_id    %s    %s    %s\n' % (txid, client_port, socket.inet_pton(family, server_addr).encode('hex'), server_port)))
    try:
        self.socket.sendall(message)
    except socket.error as e:
        self.logger.info(('Blame:    Error    sending    vuln_notify    to    %s:    %s.' % (self.address, e)))
        return False
    self.queries[txid] = Client.Callback(self._generate_on_get_applications_fn(callback), timeout)
    return True
