# `tornado.tcpclient` — `IOStream` connection factory

A non-blocking TCP connection factory.

class `tornado.tcpclient.``TCPClient`(resolver=None)

  A non-blocking TCP connection factory.

  Changed in version 5.0: The `io_loop` argument (deprecated since version 4.1) has been removed.

  `connect`(host, port, af=<AddressFamily.AF_UNSPEC: 0>, ssl_options=None, max_buffer_size=None, source_ip=None, source_port=None, timeout=None)

    Connect to the given host and port.

    Asynchronously returns an `IOStream` (or `SSLIOStream` if `ssl_options` is not None).

    Using the `source_ip` kwarg, one can specify the source IP address to use when establishing the connection. In case the user needs to resolve and use a specific interface, it has to be handled outside of Tornado as this depends very much on the platform.

    Raises `TimeoutError` if the input future does not complete before `timeout`, which may be specified in any form allowed by `IOLoop.add_timeout` (i.e. a `datetime.timedelta` or an absolute time relative to `IOLoop.time`)

    Similarly, when the user requires a certain source port, it can be specified using the `source_port` arg.

    Changed in version 4.5: Added the `source_ip` and `source_port` arguments.

    Changed in version 5.0: Added the `timeout` argument.