2009-10-14 5 views
7

Ich versuche, ein Protokoll für die Verwendung mit Domain-Sockets herauszufinden und kann keine Informationen darüber finden, wie blind die Domain-Sockets vertraut werden können.Wie zuverlässig sind Unix-Domain-Sockets?

Können Daten verloren gehen? Werden Nachrichten immer in der gleichen Reihenfolge wie gesendet empfangen? Auch bei Verwendung von Datagramm-Sockets?

Sind Übertragungen atomar? Kann ich beim Lesen der Steckdose darauf vertrauen, dass ich die ganze Nachricht auf einem gelesen bekomme oder muss ich das selbst überprüfen?

Antwort

11

Aus ‚Mann AF_UNIX‘:

Gültige Typen sind: SOCK_STREAM, für eine stromorientierte Buchse und SOCK_DGRAM, für ein Datagramm-orientierte Buchse, die Nachricht Grenzen (als auf den meisten Unix-Implementierungen bewahrt, Unix Domain-Datagramm-Sockets sind immer zuverlässig und nicht neu ordnen Datagramme);