Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
pua:servidor_unix [2008/08/14 00:33] – created maziero | pua:servidor_unix [2014/03/27 12:29] (atual) – maziero | ||
---|---|---|---|
Linha 1: | Linha 1: | ||
+ | ====== Exemplo UNIX: servidor ====== | ||
+ | |||
+ | Este servidor oferece sua interface através de um socket '' | ||
+ | |||
+ | <code c unix-server.c> | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | #include < | ||
+ | |||
+ | int main (int argc, char *argv[]) | ||
+ | { | ||
+ | int serversock; | ||
+ | | ||
+ | | ||
+ | /* cria o socket */ | ||
+ | | ||
+ | if ( serversock < 0 ) | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | | ||
+ | /* monta o endereço */ | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | /* associa o endereço ao socket */ | ||
+ | if ( bind (serversock, | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | | ||
+ | /* coloca o socket em escuta */ | ||
+ | if ( listen (serversock, | ||
+ | { | ||
+ | perror(" | ||
+ | exit(1); | ||
+ | } | ||
+ | | ||
+ | while (1) | ||
+ | { | ||
+ | int clientsock; | ||
+ | struct sockaddr_un client_addr; | ||
+ | int addrlen = sizeof(client_addr); | ||
+ | char * resposta ; | ||
+ | |||
+ | /* aguarda e aceita uma conexão externa */ | ||
+ | clientsock = accept (serversock, | ||
+ | |||
+ | printf(" | ||
+ | |||
+ | /* envia uma resposta HTTP padrão */ | ||
+ | resposta = " | ||
+ | |||
+ | write (clientsock, | ||
+ | |||
+ | /* fecha o socket da conexão recebida */ | ||
+ | close (clientsock); | ||
+ | } | ||
+ | | ||
+ | /* encerra o socket servidor */ | ||
+ | close (serversock); | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||