the TCP client side