Provide a way to override what socket is created

To allow for experimentation with other ways of reading/writing with sockets.