recvfrom

Deklaration

#include <sys/socket.h>

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);

Beschreibung

Die Funktion recvfrom() funktioniert so ähnlich wie recv(), erfordert jedoch keinen verbundenen Socket. Die Adresse des Absenders wird in der bereitgestellten sockaddr_in-Struktur aufgefangen. recvfrom() wird üblicherweise im Zusammenhang mit Datagramm-Sockets benutzt.

Parameter

sockfd Socket auf dem empfangen werden soll.
buf Puffer in den die Daten gespeichert werden sollen.
len Maximale Anzahl an Bytes die gelesen werden sollen.
flags Zusätzliche Flags (siehe send())
src_addr Puffer in der die Absenderadresse aufgefangen werden soll. Dies ist für Sockets der Familie AF_INET eine Struktur vom Typ sockaddr_in, die jedoch auf sockaddr gecastet werden muss.
addrlen Größe der Struktur. Diese Variable muss vor dem Aufruf vorbelegt werden. Wenn für src_addr NULL übergeben wurde, muss hier ebenfalls NULL übergeben werden.

Rückgabewert

Anzahl der erfolgreich empfangenen Bytes, -1 im Fehlerfall.

Typische Fehler


Zurück