docs: def port_knock_tcp(self, host="localhost", port=22, timeout=15):
          """Open a TCP socket to check for a listening sevice on a host.
  
          :param host: host name or IP address, default to localhost
          :param port: TCP port number, default to 22
          :param timeout: Connect timeout, default to 15 seconds
          :returns: True if successful, False if connect failed
          """
  
          # Resolve host name if possible
          try:
              connect_host = socket.gethostbyname(host)
              host_human = "{} ({})".format(connect_host, host)
          except socket.error as e:
              self.log.warn('Unable to resolve address: '
                            '{} ({}) Trying anyway!'.format(host, e))
              connect_host = host
              host_human = connect_host
  
          # Attempt socket connection
          try:
              knock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
              knock.settimeout(timeout)
              knock.connect((connect_host, port))
              knock.close()
              self.log.debug('Socket connect OK for host '
                             '{} on port {}.'.format(host_human, port))
              return True
          except socket.error as e:
              self.log.debug('Socket connect FAIL for'
                             ' {} port {} ({})'.format(host_human, port, e))
              return False