# File lib/cool.io/socket.rb, line 110
    def self.connect(addr, port, *args)
      family = nil

      if (Resolv::IPv4.create(addr) rescue nil)
        family = ::Socket::AF_INET
      elsif(Resolv::IPv6.create(addr) rescue nil)
        family = ::Socket::AF_INET6
      end

      if family
        return super(TCPConnectSocket.new(family, addr, port), *args) # this creates a 'real' write buffer so we're ok there with regards to already having a write buffer from the get go
      end

      if host = Coolio::DNSResolver.hosts(addr)
        return connect(host, port, *args) # calls this same function
      end

      precreate(addr, port, *args)
    end