views:

138

answers:

1

I'm trying to figure out a protocol to use with domain sockets and can't find information on how blindly the domain sockets can be trusted.

Can data be lost? Are messages always received in the same order as sent? Even when using datagram sockets?

Are transfers atomic? When reading the socket, can I trust that I get the whole message on one read or do I have to check it myself?

+5  A: 

From 'man AF_UNIX':

Valid types are: SOCK_STREAM, for a stream-oriented socket and SOCK_DGRAM, for a datagram-oriented socket that preserves message boundaries (as on most Unix implementations, Unix domain datagram sock‐ ets are always reliable and don’t reorder datagrams);

Kristof Provost