Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Adresse explizit zuordnen

&pagelevel(4)&pagelevel

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