Hat ein Prozeß mittels socket() einen Socket erzeugt, kann er mit der Funktion connect() versuchen, eine Verbindung zu einem anderen Prozeß herzustellen. Die Schnittstelle lautet:
int connect(int socket , struct sockaddr *server_addr , int addrlen );Mit socket übergibt man die Nummer des Sockets.
server_addr enthält Adresse und Port des Serverprozesses. Die Struktur sockaddr ist dabei protokollunabhängig und je nach Protokoll gecastet von sockaddr_in oder sockaddr_in6. Letztere Struktur enthält zusätzlich ein 32 Bit langes Feld sin6_flowinfo, bestehend aus Flowlabel und Priorität. Inhalt und Interpretation dieses Feldes sind gegenwärtig noch nicht spezifiziert.
addrlen ist die Größe von server_addr .
Die sockaddr_in6-Struktur ist folgendermaßen definiert:
#include <netinet/in.h> struct sockaddr_in6 { u_int16m_t sin6_family; /* AF_INET6 */ u_int16m_t sin6_port; /* transport layer port # */ u_int32m_t sin6_flowinfo; /* IPv6 flow information */ struct in6_addr sin6_addr; /* IPv6 address */ };