The documentation says that Connect can throw InvalidOperationException and ObjectDisposedException, but when you can't connect (remote server stopped, network problem, ...) a SocketException is thrown after a long timeout (about 10 seconds).
Worst, if you catch the exception and log the error another SocketException is thrown when you call Dispose.
Worst, if you catch the exception and log the error another SocketException is thrown when you call Dispose.