Ein mit s=socket() erzeugter Socket hat zunächst keinen Namen. Dem Socket muss also ein Name, d.h. eine lokale Adresse gemäß seiner Adressfamilie, zugeordnet werden. Erst danach ist der Socket adressierbar und es können Daten über ihn gesendet und empfangen werden. Mit der Funktion bind() binden Sie einen Namen an den Socket, d.h. Sie ordnen dem Socket eine lokale Adresse zu.
bind() rufen Sie wie folgt auf:
bind(s, name, namelen);
Je nach Adressfamilie (AF_INET, AF_INET6 oder AF_UNIX) ist der Name name, der dem Socket s zugeordnet wird, unterschiedlich aufgebaut.
In der Kommunikationsdomäne AF_INET besteht name aus einer 4 byte langen IPv4-Adresse und einer Portnummer. name wird übergeben in einer Variablen vom Typ struct sockaddr_in (siehe "Adress-Struktur sockaddr_in der Adressfamilie AF_INET").
In der Kommunikationsdomäne AF_INET6 besteht name aus einer 16 byte langen IPv6-Adresse und einer Portnummer. name wird übergeben in einer Variablen vom Typ struct sockaddr_in6 (siehe "Adress-Struktur sockaddr_in6 der Adressfamilie AF_INET6").
namelen enthält die Länge der Datenstruktur, die den Namen beschreibt.