-sockets based implementation