do not leave the serverSocket_ open if something goes wrong during construction

If construction of a TServerSocket fails the underlying ServerSocket object may already have been initialized. Since the reference is nullified, we loose the opportunity to properly close it. This fix addresses the issue by always cleaning up after failures during construction.

Additionally, the failure message is added to the exception for improved visibility of what went wrong