I don't think datagram sockets should keep going in the sense of sending many packets. I think for now this should mirror UDP in that it only sends one packet and returns an error if everything wasn't sent.

Additionally, it'd be nice to refactor the methods with less duplication between udp and unix datagram sockets.