In diesem Fall rufen Sie bind() wie folgt auf:
bind(s, name, namelen);
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 Abschnitt "Adress-Struktur sockaddr_in der Adressfamilie AF_INET"). namelen enthält die Länge der Datenstruktur, die den Namen beschreibt.
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 Abschnitt "Adress-Struktur sockaddr_in6 der Adressfamilie AF_INET6"). namelen enthält die Länge der Datenstruktur, die den Namen beschreibt.
In der Kommunikationsdomäne AF_ISO besteht name aus einem Netzselektor und einem Transportselektor. name wird übergeben in einer Variablen vom Typ struct sockaddr_iso (siehe Abschnitt "Adress-Struktur sockaddr_iso der Adressfamilie AF_ISO"). namelen enthält die Länge der Datenstruktur, die den Namen beschreibt.
Adresse explizit zuordnen in den Domänen AF_INET und AF_INET6
Adresse explizit zuordnen in AF_INET
Der folgende Programmausschnitt skizziert, wie einem Socket in der Domäne AF_INET ein Name zugeordnet wird.
#include <sys.types.h> #include <netinet.in.h> ... struct sockaddr_in sin; int s; ... sin.sin_family = AF_INET; sin.sin_port = 0; sin.sin_addr.s_addr = INADDR_ANY; ... bind(s, &sin, sizeof sin);
Adresse explizit zuordnen in AF_INET6
#include <sys.types.h> #include <netinet.in.h> ... struct sockaddr_in6 sin6; struct in6_addr in6addr_any = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int s; ... sin6.sin6_family = AF_INET6; sin6.sin6_port = 0; memcpy(sin6.sin6_addr.s6_addr,in6addr_any.s6_addr,16); ... bind(s, &sin6, sizeof sin6);
Bei der Wahl der Portnummer ist zu beachten:
Portnummern kleiner als PRIVPORT# (siehe Handbuch „BCAM Band 1/2“) sind für privilegierte Anwendungen reserviert (Standardwert: 2050).
Für einige Standardanwendungen gibt es feste Reservierungen bestimmter Portnummern:
Die Portnummer 3161 des SNMP-Agenten SNMP-Basic-Agent BS2000 wird verwendet für die interne Kommunikation zwischen dem Masteragent und den Subagenten (siehe Handbuch „SNMP Management für BS2000).
Die Portnummer 1235 wird vom Domain Name Service (DNS) benötigt (siehe das Administrator-Handbuch zu „interNet Services“ ).
Zu beachten sind weitere „Well Known, Registered, Dynamic und/oder Private“ Portnummern, wie sie auf der Internet-Seite der IANA unter der Webadresse „http://www.iana.org/assignments/port-numbers“ veröffentlicht werden.
Adresse explizit zuordnen in der Domäne AF_ISO
Der folgende Programmauschnitt skizziert, wie einem Socket in der Domäne AF_ISO ein Name zugeordnet wird.
#include <sys.types.h> #include <iso.h> ... .. struct sockaddr_iso sin; int s; ... .. /* Hier müssen die Anweisungen stehen, die sin mit dem Netzselektor und Transportselektor versorgen.*/ ... .. bind(s, &sin, sizeof sin);