TCPClient still needs to be a thread because the servers still need to
communicate with each other. The code for the actual connection is a
separate method, and the code for the actual transmission of messages
will be run as a thread.