code: def connect(self, host, port):
          
          if not port and (host.find(':') == host.rfind(':')):
              i = host.rfind(':')
              if i >= 0:
                  host, port = host[:i], host[i+1:]
              try: port = int(port)
              except ValueError:
                  raise socket.error, "nonnumeric port"
          #if self.verbose > 0:
          #    print 'connect:', (host, port)
          msg = "getaddrinfo returns an empty list"
          self.sock = None
          for res in socket.getaddrinfo(host, port, 0, socket.SOCK_STREAM):
              af, socktype, proto, canonname, sa = res
              try:
                  self.sock = socket.socket(af, socktype, proto)
                  #if self.debuglevel > 0: print 'connect:', (host, port)
                  self.sock.connect(sa)
              except socket.error, msg:
                  #if self.debuglevel > 0: print 'connect fail:', (host, port)
                  self.close()
                  continue
              break
          if not self.sock:
              raise socket.error, msg
docs: Connect to a host on a given port.
          If the hostname ends with a colon (`:') followed by a number, and
          there is no port specified, that suffix will be stripped off and the
          number interpreted as the port number to use.