C standard library :: socket

recv - Modtag en message fra en forbundet socket

ssize_t recv (int fd, void *buf, size_t n, int flags)

Denne funktion modtager en message fra en forbindelses- eller forbindelsesløs-orienteret socket angivet med fd. Den anvendes normalt med forbundne sockets fordi den ikke tillader applikationen af opdyrke afsenderens addresse for de modtagne data.

Følgende parametre anvendes:

fd
Angiver socket file descriptor.
buf
Peger til hvor message skal lagres.
n
Angiver længden af buf
flags
Angiver typen af message der modtages. Værdien er formet af logisk OR'er hvis flere at følgende typer ønskes:
MSG_PEEK
Smugkig på en indkommende message. Dataene er behandlet som ulæst hvorved den næste recv() også returnerer disse data.
MSG_OOB
Ønsker out-of-band data. Betydningen og semantikken for out-of-band data er protokol-specifik.
MSG_WAITALL
På SOCK_STREAM sockets vil denne ønske at funktionen blokerer indtil den fulde mængde af data kan returneres. Funktionen kan returnere en mindre mængde hvis det er en message-baseret socket, hvis et signal indfanges, hvis forbindelsen termineres, hvis MSG_PEEK også var angivet eller hvis en fejl venter på denne socket.

Funktionen returnerer længden af data skrevet til buf. For message-baserede socket som SOCK_DGRAM og SOCK_SEQPACKET skal hele message læses i en enkelt operation. Hvis en message er for lang i forhold til længden af buf og MSG_PEEK ikke er sat i flags bliver overskydende data smides væk.

Hvis MSG_WAILALL flag er sat skal data returneres op til enden af den første message.

Hvis ingen message er tilgængelig til socket og O_NONBLOCK ikke er sat for socket's file descriptor, skal recv() blokere indtil en message ankommer. Hvis ingen message er tilgængelig til socket og O_NONBLOCK er sat for socket's file descriptor, skal recv() fejle og sætte errno til [EAGAIN] eller [EWOULDBLOCK].

Retur værdi

Ved success returnerer funktionen antallet af bytes modtaget. Hvis ingen message var tilgængelig for modtagelse og fjernenden af forbindelsen har foretaget en godkendt nedlukning vil recv() returnere 0. Ellers returneres -1 og errno sættes til at give årsagen på fejlen.

Fejl

Funktionen skal fejle hvis:

[EAGAIN] eller [EWOULDBLOCK]
Socket file descriptor er markeret O_NONBLOCK og ingen data venter på modtagelse eller MSG_OOB er sat og ingen out-of-band data er tilgængelige og enten er socket file descriptor markeret O_NONBLOCK eller socket supporterer ikke blokering for afventning af out-of-band data.
[EBADF]
Parameteren fd er ikke en valid file descriptor.
[ECONNRESET]
En forbindelse blev forceret nedlukket af fjernenden af forbindelsen.
[EINTR]
Modtager funktionen blev afbrudt af et indfanget signal før data blev tilgængelige.
[EINVAL]
Den angivne optioner er invalid eller socket er lukket ned.
[ENOTCONN]
En modtagelse forsøgt på en forbindelses-orienteret socket som ikke var forbundet.
[ENOTSOCK]
Parameter fd refererer ikke til en socket.
[EOPNOTSUPP]
Denne option er ikke supporteret af protokollen.
[ETIMEDOUT]
Forbindelsen kunne ikke etableres indenfor accepteret tid eller en transmission udløb for tid.

Funktionen kan fejle hvis:

[EIO]
En I/O fejl opstod medens læsning eller skrivning til fil-systemet pågik.
[ENOBUFS]
Utilstrækkelige ressourcer tilstede i systemet for at gennemføre kaldet.
[ENOMEM]
Der var ikke tilstrækkeligt med memory tilgængelig for at fuldføre operationen.

Ressourcer C Library opslag The Single UNIX® Specification, Version 2 Copyright © 1997 The Open Group GNU C Library Engelsk, med masser af gode og dybe artikler. Danske søgeord Find selv de bedste danske søgeord til din hjemmeside.
Produkter Bookingsystem
System for reservation af tid for behandlinger, aftaler, lokaler, udstyr, personale. Tilpasset lektionstimer. Udskriver arbejdsplaner og ugeskema for opslag. Statistik. Danmarks bedste pris nu kun kr. 1.695,-
HelpdeskEffektiviser din support-organisation med et Helpdesksystem. Fjern tidrøvere der forhindrer fokus på problemløsning. Lektionsplan Formidling af generelle information og specifikke lektioner fra undervisere til studerende/elever. Medlemssystem Medlemssystem online med administration af medlemskartotek, kontingentbetalinger, flettefiler m.m.
Styr selv Styr selv indholdet på dine hjemmesider med Content Management System.
Citat Et folk der sætter sine privilegier højere end sine principper, mister hurtigt begge dele.

Dwight David Eisenhower 1890-1969, amerikansk general, USA's 34. præsident.



Professionelle løsninger til Internettet. Webdesign, e-handel, cms, søgeoptimering, webhotel, analyse, Intranet mm.