This doesn't close the socket on error, I'd recommend creating the `RawSocket` as soon as possible to let the destructor kick in.