Unix Domain Socket
POSIX local inter-process communication sockets (auch Unix Domain Socket oder IPC Socket) sind Endpunkte von bidirektionalen Kommunikationsverbindungen bei der lokalen Interprozesskommunikation (IPC) unter Unix-Betriebssystemen. Die Kommunikation über diese Sockets ist die im POSIX-Standard standardisierte Methode zur Interprozesskommunikation für Unix-ähnliche Systeme. Entsprechend der Unix-Philosophie („alles ist eine Datei“) sind Sockets über einen Inode im Dateisystem adressierbar und werden mit denselben Befehlen angesprochen wie gewöhnliche Dateien. Um zu kommunizieren, öffnen zwei Prozesse denselben Socket. Die Daten fließen als Bytestrom über Pufferspeicher im Speicher des Kernels. Neben Daten können über die Socketverbindungen mit den Systemaufrufen sendmsg() und recvmsg() auch Datei-Handles übertragen werden.
Literatur
- {{#ifexist:Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0131411551}}
| {{bibISBN/{{#invoke:URIutil|plainISBN|0131411551}}
|record = Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0131411551}}
|format = Literatur
|Autor =
|Titel =
|TitelErg =
|Band =
|Auflage =
|Kommentar=
|Kapitel = 15. Unix Domain Protocols
|Seite = 411–433
|Seiten =
|Spalten =
|ArtikelNr =
|Fundstelle =
|DOI =
|Online =
|URL =
|Linktext =
|Format =
|KBytes =
|Abruf =
|Typ =
}}{{#ifeq: 0 | 0
| {{#invoke:TemplatePar|check
|all= 1=
|opt= 2= format= Autor= Titel= TitelErg= Hrsg= Sammelwerk= WerkErg= Band= Nummer= Auflage= Datum= Sprache= NummerReihe= BandReihe= HrsgReihe= Kommentar= Kapitel= Seite= Seiten= Spalten= ArtikelNr= Fundstelle= DOI= Online= URL= Linktext= Format= KBytes= Abruf= Typ=
|template=Vorlage:bibISBN |cat=Wikipedia:Vorlagenfehler/Vorlage:BibISBN}}
}}
| {{#if:||{{#if:{{#invoke:URIutil|plainISBN|0131411551}}|Der BibISBN-Eintrag [[Vorlage:BibISBN/{{#invoke:URIutil|plainISBN|0131411551}}]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen {{#ifeq:Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0131411551}}|Unix Domain Socket|{{#switch:{{{LINK}}}|JA=|NEIN=}}}}[[[:Vorlage:Neuer Abschnitt/URL]] neuen Eintrag] an.|Die angegebene ISBN „0131411551“ ist fehlerhaft. Bitte prüfe und korrigiere die ISBN.}}{{#ifeq: 0 | 0 | }}}}}}
- {{#ifexist:Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0321525949}}
| {{bibISBN/{{#invoke:URIutil|plainISBN|0321525949}}
|record = Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0321525949}}
|format = Literatur
|Autor =
|Titel =
|TitelErg =
|Band =
|Auflage =
|Kommentar=
|Kapitel = 17.3 UNIX Domain Sockets
|Seite = 594–601
|Seiten =
|Spalten =
|ArtikelNr =
|Fundstelle =
|DOI =
|Online =
|URL =
|Linktext =
|Format =
|KBytes =
|Abruf =
|Typ =
}}{{#ifeq: 0 | 0
| {{#invoke:TemplatePar|check
|all= 1=
|opt= 2= format= Autor= Titel= TitelErg= Hrsg= Sammelwerk= WerkErg= Band= Nummer= Auflage= Datum= Sprache= NummerReihe= BandReihe= HrsgReihe= Kommentar= Kapitel= Seite= Seiten= Spalten= ArtikelNr= Fundstelle= DOI= Online= URL= Linktext= Format= KBytes= Abruf= Typ=
|template=Vorlage:bibISBN |cat=Wikipedia:Vorlagenfehler/Vorlage:BibISBN}}
}}
| {{#if:||{{#if:{{#invoke:URIutil|plainISBN|0321525949}}|Der BibISBN-Eintrag [[Vorlage:BibISBN/{{#invoke:URIutil|plainISBN|0321525949}}]] ist nicht vorhanden. Bitte prüfe die ISBN und lege ggf. einen {{#ifeq:Vorlage:bibISBN/{{#invoke:URIutil|plainISBN|0321525949}}|Unix Domain Socket|{{#switch:{{{LINK}}}|JA=|NEIN=}}}}[[[:Vorlage:Neuer Abschnitt/URL]] neuen Eintrag] an.|Die angegebene ISBN „0321525949“ ist fehlerhaft. Bitte prüfe und korrigiere die ISBN.}}{{#ifeq: 0 | 0 | }}}}}}
- {{#invoke:Vorlage:Literatur|f}}
Weblinks
[{{Man/{{#switch: @gnu
|@bsd=OpenBSD
|@=gnu
|gnu}}|2|socketpair|url}} socketpair{{#if:{{Man/{{#switch: @gnu
|@bsd=OpenBSD
|@=gnu
|gnu}}|2|socketpair|display_section}}|({{Man/{{#switch: @gnu
|@bsd=OpenBSD
|@=gnu
|gnu}}|2|socketpair|display_section}})}}]{{#if:zwei verbundene Sockets erstellen|: zwei verbundene Sockets erstellen}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @gnu
|@bsd=OpenBSD
|@=gnu
|gnu}}|2|socketpair|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @gnu
|@bsd=OpenBSD
|@=gnu
|gnu}}|2|socketpair|attrib}}}}}}
[{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|socketpair|url}} socketpair{{#if:{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|socketpair|display_section}}|({{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|socketpair|display_section}})}}]{{#if:create a pair of connected sockets|: create a pair of connected sockets}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|socketpair|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|socketpair|attrib}}}}}} (Erzeugen miteinander verbundener Sockets)
[{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|sendmsg|url}} sendmsg{{#if:{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|sendmsg|display_section}}|({{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|sendmsg|display_section}})}}]{{#if:send a message from a socket|: send a message from a socket}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|sendmsg|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|sendmsg|attrib}}}}}} (Verschicken von Nachrichten über ein Socket)
[{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|recvmsg|url}} recvmsg{{#if:{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|recvmsg|display_section}}|({{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|recvmsg|display_section}})}}]{{#if:receive a message from a socket|: receive a message from a socket}}{{#if:{{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|recvmsg|attrib}}}}| – {{#ifeq:
|inline||{{Man/{{#switch: @bsd
|@bsd=OpenBSD
|@=gnu
|bsd}}|2|recvmsg|attrib}}}}}} (Empfangen von Nachrichten über ein Socket)
cmsg(3): access ancillary data – Debian Linux Programmer's Manual (Senden/Empfangen/Verwalten von Zusatzinformationen)- Vergleich zwischen Unix Domain Sockets und Internet Sockets unter FreeBSD, 2005 (englisch)
- Unix Domain Sockets für Java (englisch)
- ucspi-unix, Client und Server Implementation von UCSPI über UNIX-Domain-Sockets (englisch)