Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ send(3N) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fcntl(2)

write(2)

select(3C)

connect(3N)

getsockopt(3N)

recv(3N)

socket(3N)

send(3N)                                                           send(3N)

NAME
     send, sendto, sendmsg - Nachricht von einem Socket senden

SYNTAX
     #include <sys/types.h>
     #include <sys/socket.h>

     int send(int s, const char *msg, int len, int flags);

     int sendto(int s, const char *msg, int len, int flags,
                     const struct sockaddr *to, int tolen);

     int sendmsg(int s, const struct msghdr *msg, int flags);

BESCHREIBUNG
     Mit send(), sendto() und sendmsg() kann eine Nachricht von einem
     Socket s, der mittels socket(3N) erzeugt wurde, zu einem anderen
     Socket übertragen werden. send() kann nur verwendet werden, wenn der
     Socket verbunden ist. sendto() und sendmsg() hingegen können in jedem
     Fall benutzt werden.

     Die Ziel-Adresse wird mit to übergeben, wobei tolen ihre Größe angibt.
     Die Länge der Nachricht wird mit len angegeben. Ist die Nachricht zu
     lang, um vom Protokoll der darunterliegenden Transport-Schicht ganz
     transportiert zu werden, wird der Fehlerwert EMSGSIZE zurückgegeben.
     Die Nachricht wird in diesem Fall nicht übertragen.

     send() zeigt keinen Fehler an, wenn die Nachricht nicht empfangen wer-
     den konnte. Der Rückgabewert -1 zeigt nur lokal festgestellte Fehler
     an.

     Wenn der Socket keinen Speicher mehr zum Puffern von zu übertragenden
     Nachrichten hat, blockiert send(), wenn der Socket nicht als nicht-
     blockierend definiert wurde [siehe fcntl(2)]. Sie können mit
     select(3C) feststellen, wann das Senden weiterer Daten möglich ist.

     Der Parameter flags wird durch eine ODER-Verknüpfung einer oder mehre-
     rer der folgenden Optionen gebildet:

     MSGOOB          Diese Option läßt das Senden von "out-of-band"-Daten
                      an die Sockets zu, die dies unterstützen. Das darun-
                      terliegende Protokoll muß ebenfalls "out-of-band"-
                      Daten unterstützen. Im Augenblick unterstützen nur
                      Sockets vom Typ SOCKSTREAM, die in der Adreßfamilie
                      AFINET erzeugt wurden, "out-of-band"-Daten.

     MSGDONTROUTE    Die Option SODONTROUTE wird für die Dauer der Opera-
                      tion eingeschaltet. Sie wird nur von Analyse- oder
                      Routing-Programmen verwendet.

     Eine Beschreibung der Datenstruktur msghdr finden Sie bei recv(3N).




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

send(3N)                                                           send(3N)

RÜCKGABEWERT
     Die obigen Aufrufe geben die Anzahl der versendeten Bytes zurück, oder
     -1, wenn ein Fehler aufgetreten ist.

DIAGNOSE
     Die Aufrufe schlagen in folgenden Fällen fehl:

     EBADF            s ist ein ungültiger Deskriptor.

     ENOTSOCK         s verweist nicht auf einen Socket.

     EINVAL           tolen entspricht nicht der Größe einer gültigen
                      Adresse für die angegebene Adreßfamilie.

     EINTR            Die Operation wurde durch die Ausgabe eines Signals
                      unterbrochen, bevor zu versendende Daten gepuffert
                      werden konnten.

     EMSGSIZE         Das Socket erfordert, daß Nachrichten in einem Stück
                      versendet werden, dafür war die Nachricht jedoch zu
                      lange.

     EWOULDBLOCK      Das Socket ist als nicht-blockierend gekennzeichnet.
                      Die erforderliche Operation würde den Prozeß jedoch
                      blockieren.

     ENOMEM           Es war nicht genügend Speicher verfügbar, um die Ope-
                      ration durchzuführen.

     ENOSR            Es waren nicht genügend STREAMS-Betriebsmittel ver-
                      fügbar, um die Operation durchzuführen.

SIEHE AUCH
     fcntl(2), write(2), select(3C), connect(3N), getsockopt(3N), recv(3N),
     socket(3N).



















Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

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