Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ accept.xs(3N-xs) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

bind(3N-xs)

connect(3N-xs)

listen(3N-xs)

socket(3N-xs)

accept(3N-xs)                 (X/OPEN SOCKETS)                accept(3N-xs)

NAME
     accept - Auf die Verbindunganforderung eines Client-Prozesses warten

SYNTAX
     cc [flag ...] file ... -lxnet [library ...]

     #include <sys/socket.h>

     int accept(int socket, struct sockaddr *address,
                sizet *addresslen);

BESCHREIBUNG
     Die Funktion accept extrahiert die erste Verbindung aus der Wartesch-
     lange anstehender Verbindungen, erstellt einen neuen Socket mit dem-
     selben Protokolltyp und derselben Adreßfamilie wie der angegebene Sok-
     ket und ordnet diesem Socket einen neuen Dateideskriptor zu.

     Für die Funktion können folgende Argumente angegeben werden:

     socket          Gibt einen Socket an, der mit socket erstellt wurde,
                     mit bind an eine Adresse gebunden wurde und einen
                     erfolgreichen Aufruf an listen ausgegeben hat.

     address         Entweder ein Null-Zeiger oder ein Zeiger auf eine
                     sockaddr-Struktur, bei der die Adresse des die Verbin-
                     dung aufbauenden Sockets zurückgegeben wird.

     addresslen     Zeigt auf eine Größe sizet, die bei der Eingabe die
                     Länge der angegebenen sockaddr-Struktur und bei der
                     Ausgabe die Länge der gespeicherten Adresse angibt.

     Wenn address kein Null-Zeiger ist, wird die Adresse des Partners für
     die empfangene Verbindungsanforderung in der sockaddr-Struktur gespei-
     chert, auf die address zeigt, und die Länge dieser Adresse wird in dem
     Objekt gespeichert, auf das addresslen zeigt.

     Überschreitet die tatsächliche Länge der Adresse die der angegebenen
     sockaddr-Struktur, wird die gespeicherte Adresse abgeschnitten.

     Läßt das Protokoll Verbindungen von ungebundenen Clients zu, und ist
     der Partner nicht gebunden, wird der in dem Objekt gespeicherte Wert,
     auf das address zeigt, nicht näher spezifiziert.

     Wenn die Warteschlange von listen keine Verbindungsanforderungen ent-
     hält und ONONBLOCK im Dateideskriptor für den Socket nicht gesetzt
     ist, blockiert accept den Prozeß so lange, bis eine Verbindungsanfor-
     derung eingeht. Wenn die Warteschlange von listen keine Verbindungsan-
     forderungen enthält und ONONBLOCK im Dateideskritor für den Socket
     gesetzt ist, schlägt accept fehl, und errno wird auf EWOULDBLOCK oder
     EAGAIN gesetzt.





Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

accept(3N-xs)                 (X/OPEN SOCKETS)                accept(3N-xs)

     Der neu erstellte Socket kann selbst keine weiteren Verbindungen
     annehmen. Der ursprüngliche Socket bleibt offen und kann weitere Ver-
     bindungen annehmen.

RÜCKGABEWERT
     accept gibt bei erfolgreicher Ausführung den nichtnegativen Dateide-
     skriptor des neu erstellten Sockets zurück. Andernfalls wird -1
     zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

FEHLER
     Die Funktion accept schlägt fehl, wenn eine der folgenden Bedingungen
     zutrifft:

     EBADF           Das Argument socket ist kein gültiger Dateideskriptor.

     ECONNABORTED    Eine Verbindung wurde abgebrochen.

     ENOTSOCK        Das Argument socket verweist nicht auf einen Socket.

     EOPNOTSUPP      Der Socket-Typ des angegebenen Sockets unterstützt
                     keine Annahme von Verbindungsanforderungen.

     EAGAIN oder EWOULDBLOCK
                     Für den Dateideskriptor des Sockets ist ONONBLOCK
                     angegeben, und es liegen keine Verbindungsanforderun-
                     gen zum Empfangen vor.

     EINTR           Die Funktion accept wurde durch ein Signal unterbro-
                     chen, das vor Eingang einer gültigen Verbindungsanfor-
                     derung aufgefangen wurde.

     EINVAL          Der socket akzeptiert keine Verbindungsanforderungen.

     EMFILE          {OPENMAX} Dateideskriptoren sind zur Zeit im aufru-
                     fenden Prozeß geöffnet.

     ENFILE          Die maximale Anzahl von Dateideskriptoren, die im
                     System zulässig ist, ist bereits geöffnet.

     Die Funktion accept kann fehlschlagen, wenn eine der folgenden Bedin-
     gungen zutrifft:

     ENOMEM          Der verfügbare Speicher reicht für die Ausführung der
                     Operation nicht aus.

     ENOBUFS         Es ist kein Pufferplatz verfügbar.

     ENOSR           Die verfügbaren STREAMS-Ressourcen reichen für die
                     Ausführung der Operation nicht aus.

     EPROTO          Es ist ein Protokollfehler aufgetreten; möglicherweise
                     wurde der STREAMS-Protokoll-Stack nicht initialisiert.


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

accept(3N-xs)                 (X/OPEN SOCKETS)                accept(3N-xs)

ANWENDUNGSZWECK
     Wenn eine Verbindung verfügbar ist, zeigt select an, daß der Dateide-
     skriptor für den Socket nun gelesen werden kann.

SIEHE AUCH
     bind(3N-xs), connect(3N-xs), listen(3N-xs), socket(3N-xs).
















































Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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