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);