send(3N-xs) (X/OPEN SOCKETS) send(3N-xs)
NAME
send - Eine Meldung über einen Socket senden
SYNTAX
cc [flag ...] file ... -lxnet [library ...]
#include <sys/socket.h>
ssizet send(int socket, const void *buffer, sizet length,
int flags);
BESCHREIBUNG
socket Gibt den Dateideskriptor für den Socket an.
buffer Zeigt auf den Puffer, in dem die zu sendende Meldung
gespeichert ist.
length Gibt die Länge der Meldung in Byte an.
flags Gibt die Art der Meldungsübertragung an. Die Werte dieses
Arguments werden durch logisches Verbinden der folgenden
Flags über OR gebildet (es kann auch kein Flag angegeben
werden):
MSGEOR Beendet einen Satz (falls vom Protokoll unter-
stützt).
MSGOOB Sendet Out-of-Band-Daten über Sockets, die
eine solche Übertragung unterstützen. Bedeu-
tung und Semantik von Out-of-Band-Daten sind
protokollspezifisch.
Die Funktion send leitet die Übertragung einer Meldung vom angegebenen
Socket zum Peer ein. Die Funktion send sendet eine Meldung nur dann,
wenn der Socket verbunden ist.
Die Länge der zu sendenden Meldung wird durch das Argument length
angegeben. Ist die Meldung für das zugrundeliegende Protokoll zu lang,
schlägt send fehl, und es werden keine Daten übertragen.
Eine erfolgreiche Ausführung eines Aufrufs send bedeutet noch nicht,
daß auch die Meldung übertragen wurde. Ein Return-Wert von -1 weist
nur auf lokal gefundene Fehler hin.
Ist auf dem Socket, von dem aus gesendet wird, kein Platz für die zu
übertragende Meldung verfügbar, und ist im Dateideskriptor des Sockets
ONONBLOCK nicht gesetzt, blockiert send den Prozeß so lange, bis
Platz verfügbar ist. Ist auf dem Socket, von dem aus gesendet wird,
kein Platz für die zu übertragende Meldung verfügbar, und ist im
Dateideskriptor des Sockets ONONBLOCK gesetzt, schlägt send fehl. Die
Funktionen select und poll können verwendet werden, um festzustellen,
wann weitere Daten gesendet werden können.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
send(3N-xs) (X/OPEN SOCKETS) send(3N-xs)
RÜCKGABEWERT
Bei erfolgreicher Ausführung gibt send die Anzahl der gesendeten Byte
zurück. Andernfalls wird -1 zurückgegeben und errno gesetzt, um den
Fehler anzuzeigen.
ANWENDUNGSZWECK
Die Funktion send entspricht der Funktion sendto mit einem Null-Zeiger
als Argument destlen und der Funktion write, wenn keine Flags verwen-
det werden.
FEHLER
Die Funktion send schlägt fehl, wenn eine der folgenden Bedingungen
zutrifft:
EBADF Das Argument socket ist kein gültiger Dateideskriptor.
ECONNRESET Eine Verbindung wurde von einem Peer geschlossen.
EDESTADDRREQ Der Socket ist nicht verbindungsorientiert, und es ist
keine Peer-Adresse gesetzt.
EINTR send wurde durch ein Signal unterbrochen, bevor Daten
übertragen werden konnten.
EMSGSIZE Die Meldung ist zu lang, um in einer einzigen Opera-
tion gesendet zu werden, wie für den Socket erforder-
lich.
ENOTCONN Der Socket ist entweder nicht verbunden oder der Peer
wurde nicht vorab angegeben.
ENOTSOCK Das Argument socket verweist nicht auf einen Socket.
EOPNOTSUPP Das Argument socket ist einem Socket zugeordnet, der
einen oder mehrere in flags gesetzte(n) Wert(e) nicht
unterstützt.
EPIPE Der Socket ist nicht für Schreiben aktiviert, oder der
Socket ist verbindungsorientiert und der Peer ist
geschlossen oder für Lesen nicht aktiviert. Trifft
letzteres zu, und ist der Socket vom Typ SOCKSTREAM,
wird das Signal SIGPIPE für den aufrufenden Prozeß
generiert.
EWOULDBLOCK oder EAGAIN
Der Dateideskriptor des Sockets ist als ONONBLOCK
markiert, und die angeforderte Operation würde blok-
kiert.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
send(3N-xs) (X/OPEN SOCKETS) send(3N-xs)
Die Funktion send kann fehlschlagen, wenn eine der folgenden Bedingun-
gen zutrifft:
ENETDOWN Die lokale Schnittstelle zum Ziel ist nicht aktiviert.
ENETUNREACH Das Netz ist nicht erreichbar.
ENOBUFS Die im System verfügbaren Ressourcen reichen für die
Ausführung der Operation nicht aus.
ENOSR Die verfügbaren STREAMS-Ressourcen reichen für die
Ausführung der Operation nicht aus.
EIO Beim Lesen aus dem oder Schreiben in das Dateisystem
ist ein E/A-Fehler aufgetreten.
SIEHE AUCH
poll(2), select(3C), connect(3N-xs), getsockopt(3N-xs), recv(3N-xs),
recvfrom(3N-xs), recvmsg(3N-xs), sendmsg(3N-xs), sendto(3N-xs),
setsockopt(3N-xs), shutdown(3N-xs), socket(3N-xs).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98