It seems there's atleast 3 different local/unix socket types (AF_UNIX
) , SOCK_STREAM
, SOCK_DGRAM
and SOCK_SEQPACKET
.
While I know that a SOCK_STREAM
gives you a bi-directional byte stream, like TCP or a bidirectional pipe, and the other two gives you a messge/packet API, what's the difference between a unix socket of SOCK_DGRAM
and SOCK_SEQPACKET
?
As these are local only, I can't think of a good reason someone would implement SOCK_DGRAM
in a manner it could reorder packets.
Also, does SOCK_DGRAM
/SOCK_SEQPACKET
employ flow control, or can messages be dropped in case of slow readers ?