Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Socket erzeugen

&pagelevel(3)&pagelevel

Ein Socket wird mit der Funktion socket() erzeugt:

int s;
...
s = socket(domain, type, protocol); 

Der Aufruf socket() erzeugt einen Socket in der Domäne domain mit dem Typ type und liefert einen Deskriptor (Integer-Wert) als Rückgabewert. Über diesen Deskriptor kann der neu erzeugte Socket in allen weiteren Aufrufen von Socket-Funktionen identifiziert werden.

Die Domänen sind als Konstanten in der Include-Datei <sys.socket.h> definiert. Unterstützt werden folgende Domänen:

  • Internet-Kommunikationsdomäne AF_INET

  • Internet-Kommunikationsdomäne AF_INET6

  • ISO-Kommunikationsdomäne AF_ISO

Für domain geben Sie deshalb AF_INET, AF_INET6 oder AF_ISO an.

Die Socket-Typen type sind ebenfalls in der Datei <sys.socket.h> definiert:

  • Wenn Sie eine verbindungsorientierte Kommunikationsbeziehung über einen Stream-Socket aufbauen wollen, geben Sie SOCK_STREAM für type an.

  • Wenn Sie eine verbindungslose Kommunikationsbeziehung über einen Datagramm-Socket aufbauen wollen, geben Sie SOCK_DGRAM für type an.

  • Wenn Sie eine ICMP-Nachricht über einen Raw-Socket senden wollen, geben Sie SOCK_RAW für type an.

Der Parameter protocol wird nicht unterstützt und sollte den Wert 0 haben.

Socket in der Domäne AF_INET erzeugen

Der folgende Aufruf erzeugt einen Stream-Socket in der Internet-Domäne AF_INET:

s = socket(AF_INET, SOCK_STREAM, 0);

In diesem Fall bietet das TCP-Protokoll die darunter liegende Kommunikationsunterstützung.

Der folgende Aufruf erzeugt einen Datagramm-Socket in der Internet-Domäne AF_INET:

s = socket(AF_INET, SOCK_DGRAM, 0);

Das in diesem Fall verwendete UDP-Protokoll leitet die Datagramme ohne weitere Kommunikationsunterstützung an die darunter liegenden Netzdienste weiter.

Socket in der Domäne AF_INET6 erzeugen

Der folgende Aufruf erzeugt einen Stream-Socket in der IPv6-Internet-Domäne AF_INET6:

s = socket(AF_INET6, SOCK_STREAM, 0);

In diesem Fall bietet das TCP-Protokoll die darunter liegende Kommunikationsunterstützung.

Der folgende Aufruf erzeugt einen Datagramm-Socket in der IPv6-Internet-Domäne AF_INET6:

s = socket(AF_INET6, SOCK_DGRAM, 0);

Das in diesem Fall verwendete UDP-Protokoll leitet die Datagramme ohne weitere Kommunikationsunterstützung an die darunter liegenden Netzdienste weiter.

Socket in der Domäne AF_ISO erzeugen

Der folgende Aufruf erzeugt einen Socket in der ISO-Domäne zur Nutzung des ISO-Transportservice:

s = socket(AF_ISO, SOCK_STREAM, 0);