Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

recv [d/mY H:i]
laureano
recv [d/mY H:i]
Linha 1: Linha 1:
-====== Funções recv e recvfrom ====== 
  
-Sintaxe: 
-<code c> 
-ssize_t recv(int s, void *buf, size_t len); 
-ssize_t recvfrom(int s, void *buf, size_t len int flags, struct sockaddr *from, socklen_t *fromlen); 
-</​code>​ 
- 
-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 <​stdio.h>​ 
-#include <​stdlib.h>​ 
-#include <​strings.h>​ 
-#include <​errno.h>​ 
-#include <​sys/​types.h>​ 
-#include <​sys/​socket.h>​ 
-#include <​netinet/​in.h>​ 
-#include <​arpa/​inet.h>​ 
- 
-int main(void) 
-{ 
-   int iSock; 
-   int iBytes; 
-   ​struct sockaddr_in dest_addr; 
-   char buffer[100];​ 
- 
-   iSock = socket(AF_INET,​ SOCK_STREAM,​ 0); 
-   if( iSock == -1) 
-   { 
-      perror("​socket:"​);​ 
-      exit(1); 
-   } 
- 
-   ​dest_addr.sin_family = AF_INET; 
-   ​dest_addr.sin_port = htons(4950);​ 
-   ​dest_addr.sin_addr.s_addr = inet_addr("​127.0.0.1"​);​ 
-   ​bzero(&​(dest_addr.sin_zero),​ 8); 
- 
-   if( connect(iSock,​ (struct sockaddr *)&​dest_addr,​ sizeof(struct sockaddr)) < 0) 
-   { 
-      perror("​connect:"​);​ 
-      exit(1); 
-   } 
- 
-   if ((iBytes=recv(iSock,​ buffer, 100, 0)) < 0 ) /* recebe dados do servidor */ 
-   { 
-      perror("​recv"​);​ 
-      exit(1); 
-   } 
-   ​buffer[iBytes] = '​\0';​ /* Acrescenta o \0 para garantir término nulo para a string */ 
- 
-   ​printf("​Recebido:​ %s",​buffer);​ 
- 
-   ​return 0; 
-} 
-</​code>​ 
recv.txt · Última modificação: d/mY H:i (edição externa)
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0