I don't think this is necessarily correct for a `dgram` unix socket. For a stream I would expect to continue writing until the whole buffer is gone, but for a `dgram` version I would expect `write` to send one packet and then tell me if the packet was too large.