recv() - Signatur

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

int recv(int sockfd, void *msg, int msglen, int flags);

sockfd ist der Socket von dem gelesen werden soll (dieser sollte zuvor mit Hilfe von connect() mit einem anderen Socket verbunden worden sein). msg ist der Buffer in den die empfangene Nachricht geschrieben wird und msglen dessen Länge. Mit flags können einige Flags übergeben werden (siehe man page) die jedoch meist nicht benötigt werden (flags = 0). Die Anzahl der gelesenen Bytes wird zurückgegeben (oder -1 bei einem Fehler).

Hilfe unter Linux

$ man recv

Beispiele

Eine Zeichenkette empfangen

char buffer[1024];
int bytes;

if((bytes = recv(socketfd, buffer, sizeof(buffer), 0)) == -1){
  /* Fehler */
}
buffer[bytes] = '\0'; /* Anmerkung: Beim Empfangen von Zeichenketten muss das abschließende '\0' angehängt werden */

Daten empfangen

char buffer[1024];
int bytes;

if((bytes = recv(socketfd, buffer, sizeof(buffer), 0)) == -1){
  /* Fehler */
}