added a generic TCP based Client for bi-directional communication