Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Adress-Struktur sockaddr_in der Adressfamilie AF_INET

&pagelevel(5)&pagelevel

Bei der Adressfamilie AF_INET besteht ein Name aus einer 4 byte langen Internet-Adresse und einer Portnummer. Für die Adressfamilie AF_INET verwenden Sie die Adress-Struktur sockaddr_in. Diese Struktur besitzt eine Variante für #define SIN_LEN.

Die Struktur sockaddr_in ist in der Include-Datei <netinet.in.h> wie folgt deklariert:

struct sockaddr_in {
   short            sin_family;      /* Adressfamilie AF_INET */
   u_short          sin_port;        /* 16 bit Portnummer */
   struct in_addr   sin_addr;        /* 32 bit Internet-Adresse */
   char             sin_zero[8];
   };

Strukturvariante von sockaddr_in mit gesetztem #define SIN_LEN zur Unterstützung von BSD 4.4 Systemen:

struct sockaddr_in {
   u_char           sin_len;         /* Länge der Struktur*/
   u_char           sin_family;      /* Adressfamilie AF_INET */
   u_short          sin_port;        /* 16 bit Portnummer */
   struct in_addr   sin_addr;        /* 32 bit Internet-Adresse */
   char             sin_zero[8];
   };

Mit den folgenden Anweisungen können Sie eine Variable server vom Typ struct sockaddr_in mit einem Namen versorgen:

struct sockaddr_in server;
...
server.sin_family = AF_INET;
server.sin_port = htons(8888);
server.sin_addr.s_addr = htonl(INADDR_ANY);

Ein Zeiger auf die Variable server kann nun als aktueller Parameter, z.B. bei einem bind()-Aufruf, übergeben werden, um den Namen an einen Socket zu binden:

bind(..., &server, ...)   /* bind()-Aufruf mit Typ-Konvertierung */

Die Strukturen für Rechner-, Protokoll- und Service-Namen sind im Kapitel „Adressumwandlung bei SOCKETS(BS2000)" dargestellt.