#include <sys/socket.h> ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);
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.
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. |
Anzahl der erfolgreich empfangenen Bytes, -1 im Fehlerfall.