recv
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
— | recv [2023/09/12 16:14] (atual) – criada - edição externa 127.0.0.1 | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Funções recv e recvfrom ====== | ||
+ | |||
+ | Sintaxe: | ||
+ | |||
+ | '' | ||
+ | |||
+ | '' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | A função **recv** é utilizada para receber (ler) uma mensagem de um [[socket]]. Para leitura de mensagens, também pode ser utilizada a função [[read]]. A função retorna o número de bytes lidos ou –1 se houve erro. | ||
+ | |||
+ | A função **recv** é utilizada em conexões [[TCP]] (stream) ou [[orientada a conexão]]. | ||
+ | |||
+ | As função **recvfrom** tem a mesma função e retorno da funções **recv**, exceto que é utilizada para comunicação [[não orientada a conexão]] ([[UDP]]). | ||
+ | |||
+ | A função **recv** deve ser utilizada em conjunto com a função [[send]]. A função **recvfrom** deve ser utilizada em conjunto com a função [[send|sendto]]. | ||
+ | |||
+ | Veja o exemplo: | ||
+ | |||
+ | <code c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main(void) | ||
+ | { | ||
+ | int iSock; | ||
+ | int iBytes; | ||
+ | | ||
+ | char buffer[100]; | ||
+ | |||
+ | iSock = socket(AF_INET, | ||
+ | if( iSock == -1) | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | if( connect(iSock, | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | |||
+ | if ((iBytes=recv(iSock, | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | --- // | ||