Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

accept(3N-xs)

bind(3N-xs)

connect(3N-xs)

getpeername(3N-xs)

getsockname(3N-xs)

getsockopt(3N-xs)

listen(3N-xs)

recv(3N-xs)

recvfrom(3N-xs)

recvmsg(3N-xs)

send(3N-xs)

sendmsg(3N-xs)

sendto(3N-xs)

setsockopt(3N-xs)

shutdown(3N-xs)

socket(3N-xs)

socketpair(3N-xs)

socket(5)                                                         socket(5)

NAME
     socket - Internet-Protokollfamilie

SYNTAX
     #include <sys/socket.h>

BESCHREIBUNG
     Der Header <sys/socket.h> definiert die ganzzahligen Typen ohne Vor-
     zeichen von safamilyt bis typedef.

     Der Header <sys/socket.h> definiert die Struktur sockaddr, die zumin-
     dest die folgenden Member enthält:

     safamilyt safamily   /* Adreßfamilie */
     char        sadata[]   /* Socket-Adresse (Daten variabler Länge) */

     Der Header <sys/socket.h> definiert die Struktur msghdr, die zumindest
     die folgenden Komponenten enthält:

     void       *msgname        /* optionale Adresse */
     sizet      msgnamelen     /* Länge der Adresse */
     struct iovec *msgiov       /* Scatter-/Gather-Array */
     int         msgiovlen      /* Komponenten in msgiov */
     void       *msgcontrol     /* Zusatzdaten, siehe unten */
     sizet      msgcontrollen  /* Pufferlänge für Zusatzdaten */
     int         msgflags       /* Flags zu emfangener Meldung */

     Der Header <sys/socket.h> definiert die Struktur cmsghdr, die zumin-
     dest die folgenden Komponenten enthält:

     sizet      cmsglen    /* Anzahl der Datenbyte einschl. Header */
     int         cmsglevel  /* urprüngliches Protokoll */
     int         cmsgtype   /* protokollspezifischer Typ */

     Zusatzdaten bestehen aus einer Folge von Paaren, die jeweils aus einer
     Struktur cmsghdr gefolgt von einem Daten-Array bestehen. Das Daten-
     Array enthält die Zusatzdatenmeldung und die Struktur cmsghdr enthält
     beschreibende Informationen, anhand derer eine Anwendung die Daten
     korrekt analysieren kann.

     Die Werte für cmsglevel sind zulässige Werte für das Argument level
     der Funktionen getsockopt und setsockopt. Die Systemdokumentation
     sollte die cmsgtype-Definitionen für die unterstützten Protokolle
     enthalten.

     Zusatzdaten sind auch auf Socket-Ebene möglich. Der Header
     <sys/socket.h> definiert das folgende Makro zur Verwendung als Wert
     cmsgtype, wenn cmsglevel SOLSOCKET ist:

     SCMRIGHTS          Gibt an, daß das Daten-Array die zu
                         sendenden/empfangenden Zugriffsrechte enthält.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

socket(5)                                                         socket(5)

     Der Header <sys/socket.h> definiert die folgenden Makros, um Zugriff
     auf die Daten-Arrays der einem Meldungskopf zugeordneten Zusatzdaten
     zu erhalten:

     CMSGDATA(cmsg)     Ist das Argument ein Zeiger auf eine Struktur
                         cmsghdr, gibt dieses Makro einen Zeichenzeiger
                         ohne Vorzeichen auf das Daten-Array aus, das der
                         Struktur cmsghdr zugeordnet ist.

     CMSGNXTHDR(mhdr,cmsg)
                         Ist das erste Argument ein Zeiger auf eine Struk-
                         tur msghdr und das zweite Argument ein Zeiger auf
                         eine Struktur cmsghdr in den Zusatzdaten, auf die
                         über das Feld msgcontrol dieser Struktur msghdr
                         gezeigt wird, gibt dieses Makro einen Zeiger auf
                         die nächste Struktur cmsghdr oder einen Null-
                         Zeiger zurück, wenn es sich bei dieser Struktur um
                         die letzte Struktur cmsghdr in den Zusatzdaten
                         handelt.

     CMSGFIRSTHDR(mhdr) Ist das Argument ein Zeiger auf eine Struktur
                         msghdr, gibt dieses Makro einen Zeiger auf die
                         erste Struktur cmsghdr in den Zusatzdaten zurück,
                         die dieser Struktur msghdr zugeordnet sind, oder
                         einen Null-Zeiger, wenn der Struktur msghdr keine
                         Zusatzdaten zugeordnet sind.

     Der Header <sys/socket.h> definiert die Struktur linger, die zumindest
     die folgenden Komponenten enthält:

     int    lonoff   /* gibt an, ob die Option "linger" aktiviert ist */
     int    llinger  /* Wartezeit in Sekunden */

     Der Header <sys/socket.h> definiert die folgenden Makros mit unter-
     schiedlichen ganzzahligen Werten:

     SOCKDGRAM          Datagramm-Socket

     SOCKSTREAM         Byte-Stream-Socket

     SOCKSEQPACKET      Socket für regelmäßige Übertragungspfade

     Der Header <sys/socket.h> definiert das folgende Makro zur Verwendung
     als Argument level der Funktionen setsockopt und getsockopt.

     SOLSOCKET          Optionen, auf die auf Socket-Ebene, nicht auf Pro-
                         tokollebene zugegriffen wird.







Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

socket(5)                                                         socket(5)

     Der Header <sys/socket.h> definiert die folgenden Makros mit unter-
     schiedlichen ganzzahligen Werten zur Verwendung als Argument
     optionname in den Aufrufen von getsockopt und setsockopt:

     SODEBUG            Testdaten werden aufgezeichnet

     SOACCEPTCONN       Socket ist empfangsbereit

     SOBROADCAST        Übertragung von Broadcast-Meldungen wird unter-
                         stützt

     SOREUSEADDR        Wiederverwendung lokaler Adressen wird unterstützt

     SOKEEPALIVE        Verbindungen bleiben durch regelmäßige Übertragung
                         von Meldungen aktiv

     SOLINGER           Socket wartet bei Ausgabe von close

     SOOOBINLINE        Out-of-Band-Daten (als dringend markierte Daten)
                         werden im normalen Datenstrom übertragen

     SOSNDBUF           Größe des Sendepuffers

     SORCVBUF           Größe des Empfangspuffers

     SOERROR            Socket-Fehlerstatus

     SOTYPE             Socket-Typ

     Der Header <sys/socket.h> definiert die folgenden Makros mit unter-
     schiedlichen ganzzahligen Werten zur Verwendung als gültige Werte für
     das Feld msgflags in der Struktur msghdr oder für den Flag-Parameter
     in den Aufrufen von recvfrom, recvmsg, sendto oder sendmsg:

     MSGCTRUNC          Steuerdaten werden abgeschnitten

     MSGEOR             Satzende erreicht (falls vom Protokoll unter-
                         stützt)

     MSGOOB             Out-of-Band-Daten

     MSGPEEK            Empfangene Daten bleiben in der Warteschlange

     MSGTRUNC           Normale Daten werden abgeschnitten

     MSGWAITALL         Wartet, bis die gesamte Meldung ausgegeben ist

     Der Header <sys/socket.h> definiert die folgenden Makros mit unter-
     schiedlichen ganzzahligen Werten:

     AFUNIX             UNIX Sockets



Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

socket(5)                                                         socket(5)

     AFINET             Internet-Sockets

     Der Header <sys/socket.h> definiert die folgenden Makros mit unter-
     schiedlichen ganzzahligen Werten:

     SHUTRD             Deaktiviert weitere Empfangsoperationen

     SHUTWR             Deaktiviert weitere Sendeoperationen

     SHUTRDWR           Deaktiviert weitere Sende- und Empfangsoperationen

     Die folgenden Typen sind als Funktionen deklariert und können auch als
     Makros definiert sein:

     int     accept(int socket, struct sockaddr *address,
                  sizet *addresslen);
     int     bind(int socket, const struct sockaddr *address,
                  sizet addresslen);
     int     connect(int socket, const struct sockaddr *address,
                  sizet addresslen);
     int     getpeername(int socket, struct sockaddr *address,
                  sizet *addresslen);
     int     getsockname(int socket, struct sockaddr *address,
                  sizet *addresslen);
     int     getsockopt(int socket, int level, int optionname,
                  void *optionvalue, sizet *optionlen);
     int     listen(int socket, int backlog);
     ssizet recv(int socket, void *buffer, sizet length, int flags);
     ssizet recvfrom(int socket, void *buffer, sizet length,
                  int flags, struct sockaddr *address, sizet *addresslen);
     ssizet recvmsg(int socket, struct msghdr *message, int flags);
     ssizet send(int socket, const void *message, sizet length, int flags);
     ssizet sendmsg(int socket, const struct msghdr *message, int flags);
     ssizet sendto(int socket, const void *message, sizet length, int flags,
                  const struct sockaddr *destaddr, sizet destlen);
     int     setsockopt(int socket, int level, int optionname,
                  const void *optionvalue, sizet optionlen);
     int     shutdown(int socket, int how);
     int     socket(int domain, int type, int protocol);
     int     socketpair(int domain, int type, int protocol,
                  int socketvector[2]);

SIEHE AUCH
     accept(3N-xs), bind(3N-xs), connect(3N-xs), getpeername(3N-xs),
     getsockname(3N-xs), getsockopt(3N-xs), listen(3N-xs), recv(3N-xs),
     recvfrom(3N-xs), recvmsg(3N-xs), send(3N-xs), sendmsg(3N-xs),
     sendto(3N-xs), setsockopt(3N-xs), shutdown(3N-xs), socket(3N-xs),
     socketpair(3N-xs).






Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026