I tried to refactor the TcpClient in ts_m2com to use the Client in ts_tcpip. However, the design of Client is that the user needs to instantiate the new instance after each connection (success or fail). I realized that I would need to change pretty much code in TcpClinet and others to adapt this.
In addition, in the test, the code sometime just hang-ups or dies silently that I do not understand. Therefore, I would keep the update to use this new Client in the next time when it is needed. Otherwise, it is not very beneficial to use this Client at this moment.