Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

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

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

poll(2)

read(2)

write(2)

select(3C)

recvmsg(3N-xs)

recvfrom(3N-xs)

send(3N-xs)

sendmsg(3N-xs)

sendto(3N-xs)

shutdown(3N-xs)

socket(3N-xs)

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

NAME
     recv - Eine Meldung von einem verbundenen Socket empfangen

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

     #include <sys/socket.h>

     ssizet recv(int socket, void *buffer,
                  sizet length, int flags);

BESCHREIBUNG
     Die Funktion recv empfängt Meldungen von einem verbundenen Socket. Für
     die Funktion können folgende Argumente angegeben werden:

     socket       Gibt den Dateideskriptor für den Socket an.

     buffer       Zeigt auf einen Puffer, in dem die Meldung gespeichert
                  werden soll.

     length       Gibt die Länge des Puffers (in Byte) an, auf den das
                  Argument buffer zeigt.

     flags        Gibt die Art des Meldungsempfangs an. Die Werte dieses
                  Arguments werden durch logisches Verbinden der folgenden
                  Werte über OR gebildet (es kann auch kein Wert angegeben
                  werden):

                  MSGPEEK
                       Zeigt eine eingehende Meldung an. Die Daten werden
                       jedoch als ungelesen behandelt und die nächste Funk-
                       tion recv oder eine ähnliche Funktion gibt diese
                       Daten auch weiterhin zurück.

                  MSGOOB
                       Fordert Out-of-Band-Daten an. Bedeutung und Semantik
                       von Out-of-Band-Daten sind protokollspezifisch.

                  MSGWAITALL
                       Fordert an, daß die Funktion so lange blockiert
                       wird, bis die gesamte angeforderte Datenmenge
                       zurückgegeben werden kann. Die Funktion kann eine
                       geringere Datenmenge zurückgeben, wenn ein Signal
                       aufgefangen wird, die Verbindung beendet wird, oder
                       ein Fehler für den Socket ansteht.

     Die Funktion recv gibt die Länge der Meldung zurück, die in den durch
     das Argument buffer angegebenen Puffer geschrieben wird. Bei Sockets
     auf Meldungsbasis wie beispielsweise SOCKDGRAM und SOCKSEQPACKET muß
     die gesamte Meldung in einer einzigen Operation gelesen werden. Ist
     eine Meldung zu lang für den entsprechenden Puffer, und ist MSGPEEK
     im Argument flags nicht gesetzt, werden die über die Puffergröße



Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

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

     hinausgehenden Byte gelöscht. Bei Sockets auf STREAM-Basis, wie bei-
     spielsweise SOCKSTREAM, werden Meldungsgrenzen ignoriert. In diesem
     Fall werden die Daten an den Benutzer ausgegeben, sobald sie verfügbar
     sind, und es werden keine Daten gelöscht.

     Wenn das Flag MSGWAITALL nicht gesetzt ist, werden nur Daten bis zum
     Ende der ersten Meldung ausgegeben.

     Wenn am Socket keine Meldungen verfügbar sind und ONONBLOCK im Datei-
     deskriptor des Sockets nicht gesetzt ist, blockiert recv den Prozeß so
     lange, bis eine Meldung eingeht. Wenn am Socket keine Meldungen ver-
     fügbar sind und ONONBLOCK im Dateideskriptor des Sockets gesetzt ist,
     schlägt recv fehl und setzt errno auf EWOULDBLOCK oder EAGAIN.

RÜCKGABEWERT
     Bei erfolgreicher Ausführung gibt recv die Länge der Meldung in Byte
     zurück. Wenn keine zu empfangenden Meldungen vorliegen und der Peer
     ordnungsgemäß heruntergefahren wurde, gibt recv 0 zurück. Andernfalls
     wird -1 zurückgegeben und errno gesetzt, um den Fehler anzuzeigen.

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

     EBADF           Das Argument socket ist kein gültiger Dateideskriptor.

     ECONNRESET      Eine Verbindung wurde durch einen Peer geschlossen.

     EINTR           Die Funktion recv wurde durch ein Signal unterbrochen,
                     bevor Daten verfügbar waren.

     EINVAL          Das Flag MSGOOB ist gesetzt, und keine Out-of-Band-
                     Daten sind verfügbar.

     ENOTCONN        Es wurde versucht, Daten auf einem verbindungsorien-
                     tierten Socket zu empfangen, der nicht verbunden ist.

     ENOTSOCK        Das Argument socket verweist nicht auf einen Socket.

     EOPNOTSUPP      Die angegebenen Flags werden für diesen Socket-Typ
                     bzw. dieses Socket-Protokoll nicht unterstützt.

     ETIMEDOUT       Die für die Verbindung verfügbare Zeit ist während des
                     Verbindungsaufbaus abgelaufen, oder bei einer aktiven
                     Verbindung wurde die Übertragungszeit überschritten.

     EWOULDBLOCK oder EAGAIN
                     Der Dateideskriptor des Sockets ist als ONONBLOCK
                     markiert, und es stehen keine Daten für den Empfang
                     an, oder MSGOOB ist gesetzt, und es sind keine Out-
                     of-Band-Daten verfügbar, und entweder der Dateide-
                     skriptor des Sockets ist als ONONBLOCK markiert, oder


Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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

                     der Socket unterstützt kein Blockieren, um auf Out-
                     of-Band-Daten zu warten.

     Die Funktion recv kann fehlschlagen, wenn eine der folgenden Bedingun-
     gen zutrifft:

     EIO             Beim Lesen aus dem oder Schreiben in das Dateisystem
                     ist ein E/A-Fehler aufgetreten.

     ENOBUFS         Die im System verfügbaren Ressourcen reichen für die
                     Ausführung der Operation nicht aus.

     ENOMEM          Der verfügbare Speicher reicht für die Anforderung
                     nicht aus.

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

ANWENDUNGSZWECK
     Die Funktion recv entspricht der Funktion recvfrom mit Null als Argu-
     ment addresslen und der Funktion read, wenn keine Flags verwendet
     werden.

     Die Funktionen select und poll können verwendet werden, um festzustel-
     len, wann Daten für den Empfang vorliegen.

SIEHE AUCH
     poll(2), read(2), write(2), select(3C), recvmsg(3N-xs),
     recvfrom(3N-xs), send(3N-xs), sendmsg(3N-xs), sendto(3N-xs),
     shutdown(3N-xs), socket(3N-xs).
























Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

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