Added TCP socket abstraction