would it make sense to defer the socket creation until the first write call?