Кажется, есть как минимум 3 различных типа локальных /unix сокетов (AF_UNIX
), SOCK_STREAM
, SOCK_DGRAM
и SOCK_SEQPACKET
.
Хотя я знаю, что SOCK_STREAM
дает вам двунаправленный байтовый поток, такой как TCP или двунаправленный канал, а два других дают вам API сообщений/пакетов, в чем разница между сокетом Unix SOCK_DGRAM
и SOCK_SEQPACKET
?
Поскольку они являются только локальными, я не могу придумать вескую причину, по которой кто-то мог бы реализовать SOCK_DGRAM
таким образом, чтобы он мог переупорядочивать пакеты.
Кроме того, SOCK_DGRAM
/SOCK_SEQPACKET
использует управление потоком, или сообщения могут быть отброшены в случае медленных читателей?