Escolar Documentos
Profissional Documentos
Cultura Documentos
Servidor
Gustavo Leitão
5/28/2010
5/28/2010
INTRODUÇÃO
Objetivo da Aula
5/28/2010
OBJETIVO DA AULA
Apresentar ao aluno
conceitos e prática em
sockets para a
programação de
servidores
5/28/2010
CHAMADAS DE SISTEMA
socket (protofamily,type,protocol)
bind (socket,localaddr,addrlen)
listen (socket,queuesize)
accept (socket,caddress,caddresslen)
connect (connect,saddress,saddresslen)
send (socket,data,lenght,flags)
recv (socket,buffer,lenght,flags)
close (socket)
5/28/2010
PROGRAMA TÍPICO
Servidor Cliente
socket();
bind(); socket();
listning();
accept();
receiv(); send();
send(); receiv();
close(); close();
5/28/2010
PROGRAMA TÍPICO
#include <sys/types.h>
#include <sys/socket.h>
if (socketfd == -1 ){
perror(“Error socket() ”) ;
exit ( 1 ) ;
}
Domínios: Tipos:
AF_UNIX, AF_LOCAL - Comunicação Local SOCK_STREAM - TCP
AF_INET - IPv4 SOCK_DGRAM - UDP
AF_INET6 IPv6
5/28/2010
5/28/2010
PROGRAMA TÍPICO
if (r == -1) {
perror("Error bind()\n");
exit(1);
}
5/28/2010
5/28/2010
PROGRAMA TÍPICO
Backlog -> representa o tamanho da fila de requisições de clientes para serem aceitos
5/28/2010
5/28/2010
PROGRAMA TÍPICO
PROGRAMA TÍPICO
int bytesLidos;
PROGRAMA TÍPICO
PROGRAMA TÍPICO
How:
0 – Fecha a conexão para receber mensagens
1 – Fecha conexão para envio de mensagens
2 – Fecha a conexão para ambos os lados similar o close()