Diferenças

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

Link para esta página de comparações

pua:cliente_unix [2008/08/14 00:33] – created mazieropua:cliente_unix [2014/03/27 12:29] (atual) maziero
Linha 1: Linha 1:
 +====== Exemplo UNIX: cliente ======
  
 +Este cliente se conecta ao servidor através de um socket ''AF_LOCAL'' chamado "''./socket''".
 +
 +<code c unix-client.c>
 +#include <stdio.h>
 +#include <unistd.h>
 +#include <sys/un.h>
 +#include <sys/socket.h>
 +
 +#define BUFSIZE 256
 +
 +int main (int argc, char *argv[])
 +{
 +   int sock, numbytes;
 +   struct sockaddr_un server;
 +   char *pedido ;
 +   char resposta[BUFSIZE];
 +
 +    /* cria um socket TCP */
 +    sock = socket(AF_LOCAL, SOCK_STREAM, 0) ;
 +    if ( sock < 0 )
 +    {
 +        perror("Erro na criação do socket:");
 +        exit(1);
 +    }
 +
 +    /* inicializa a estrutura com endereço/porta do servidor */
 +    bzero (&server, sizeof(server));
 +    server.sun_family = AF_LOCAL;
 +    strcpy (server.sun_path, "./socket") ;
 +      
 +    /* conecta ao servidor */
 +    if ( connect(sock, (struct sockaddr*)&server, sizeof(server)) != 0 )
 +    {
 +        perror("Erro na conexão:");
 +        exit(1);
 +    }
 +  
 +    /* envia comando HTTP ao servidor */
 +    pedido = "GET / HTTP/1.0\n\n" ;
 +    write (sock, pedido, strlen (pedido)) ;
 +    
 +    /* lê resposta enviada pelo servidor */
 +    numbytes = read (sock, &resposta, BUFSIZE) ;
 +    write (STDOUT_FILENO, resposta, numbytes);
 +
 +   /* encerra a conexão */
 +   close(sock);
 +   
 +   return 0;
 +}
 +</code>