'Connect to the given host and port.
Asynchronously returns an `.IOStream` (or `.SSLIOStream` if
``ssl_options`` is not None).'

@gen.coroutine
def connect(self, host, port, af=socket.AF_UNSPEC, ssl_options=None, max_buffer_size=None):

    addrinfo = (yield self.resolver.resolve(host, port, af))
    connector = _Connector(addrinfo, self.io_loop, functools.partial(self._create_stream, max_buffer_size))
    (af, addr, stream) = (yield connector.start())
    if (ssl_options is not None):
        stream = (yield stream.start_tls(False, ssl_options=ssl_options, server_hostname=host))
    raise gen.Return(stream)
