The address object that will be used for socket.connect; this address is an
address tuple (the number of elements dependent upon the address family)
which does not contain any names which need to be resolved. (type: tuple)

Connection,
which is the base class of this class which has all of the useful file
descriptor methods. This is used by _TLSServerMixin
to call the right methods to directly manipulate the transport, as is
necessary for writing TLS-encrypted bytes (whereas those methods on Server will go
through another layer of TLS if it has been enabled).

A flag indicating whether the address of this client will require name
resolution. True if the hostname of said address indicates a
name that must be resolved by hostname lookup, False if it
indicates an IP address literal. (type: bool)

A flag indicating whether the producer was registered as a streaming (ie
push) producer or not (ie a pull producer). This will determine whether
the consumer may ever need to pause and resume it, or if it can merely call
resumeProducing on it when buffer space is available.

The address object that will be used for socket.connect; this address is an
address tuple (the number of elements dependent upon the address family)
which does not contain any names which need to be resolved. (type: tuple)

_base =

Connection,
which is the base class of this class which has all of the useful file
descriptor methods. This is used by _TLSServerMixin
to call the right methods to directly manipulate the transport, as is
necessary for writing TLS-encrypted bytes (whereas those methods on Server will go
through another layer of TLS if it has been enabled).

Here, we build the protocol from the twisted.internet.protocol.ClientFactory
that was passed in, compute a log string, begin reading so as to send
traffic to the newly built protocol, and finally hook up the protocol
itself.