Attempts to create a TCP connection to a service.
This call looks up the SRV record for
domain for the "tcp" protocol. It then attempts to connect, in turn,
to each of the hosts providing the service until either a connection succeeds or there are no hosts remaining.
Upon a successful connection, a new SocketConnection is constructed and returned. The caller owns this new object and must drop their reference to it when finished with it.
In the event of any failure (DNS error, service not found, no hosts connectable) null is returned and throws (if non-null) is set accordingly.
a domain name
the name of the service to connect to
a Cancellable, or null
a SocketConnection if successful, or null on error