Dieses Kapitel basiert auf den Kapiteln 24.1.1 Socket und 24.1.2 ServerSocket.
Beachten Sie, dass Unix-Domain-Sockets genau genommen keine Sockets im Sinne der Netzwerkprogrammierung sind und zum Thema Interprozesskommunikation (IPC) gehören → Kapitel 27.5.0 XML-RPC ( Remote Procedure Call). Der Grund ist verständlich, weil Dateien anstelle von IP-Adressen und Ports zur Kommunikation zwischen den Sockets verwendet werden. Diese Dateien werden im Dateisystem automatisch angelegt, wenn ein Socket an eine Datei gebunden wird. Unix-Domain-Sockets arbeiten verbindungsorientiert, vollduplex und sind schneller als TCP-Sockets.
So erzeugen Sie einen neuen Unix-Server-Socket:
Public UNIXServerSocket As ServerSocket Private sUnixPath As String sUnixPath = User.Home &/ "socket" ' Beispiel für eine Pfad-Angabe. Private Sub CreateUNIXServerSocket() '-- Es wird ein UNIX-Server-Socket erzeugt UNIXServerSocket = New ServerSocket As "UNIXServerSocket" '-- Der Server-Typ wird durch die Typ-Angabe auf `Unix-Domain-Socket` festgelegt UNIXServerSocket.Type = Net.Unix ' Net.Local UNIXServerSocket.Path = sUnixPath ' An Stelle von ServerSocket.Port End
Hinweise:
Analog gilt für einen Unix-Client-Socket:
Public UNIXClient As Socket Private sUnixPath As String sUnixPath = User.Home &/ "socket" Private Sub CreateUNIXClientSocket() '-- Es wird ein UNIX-Client-Socket erzeugt UNIXClient = New Socket As "UNIXClient" '-- Der Client-Typ wird durch die Port-Angabe (!) auf `Unix-Domain-Socket` festgelegt UNIXClient.Port = Net.Unix ' Net.Local UNIXClient.Path = sUnixPath ' An Stelle von ClientSocket.Port End
Abbildung 24.1.4.0.1: Unix-Domain-Server-Client-Applikation