Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das chamadas UDP. Resumo de Chamadas UDP.

Documentos relacionados
Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Chamadas UDP. Resumo de Chamadas UDP.

Servidor UDP. Programação Sockets Volnys Bernal. Servidor UDP Resumo das Chamadas UDP. Resumo de Chamadas UDP. Resumo de Chamadas UDP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Servidor TCP. Programação Sockets. (c) Volnys Bernal. Servidor TCP Resumo das Chamadas TCP. Resumo das Chamadas TCP. Resumo das Chamadas TCP

Introdução à Programação Sockets

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Aula de Socket. Rafael De Tommaso do Valle

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão

Comunicação entre processos. Sistema centralizado

Soquetes TCP. Jean Ribeiro Damasceno. Escola de Engenharia Universidade Federal Fluminense (UFF) Rua Passo da Pátria, 156 Niterói RJ Brasil

Resolução de Nomes Volnys Borges Bernal Deparatamento de Sistemas Eletrônicos Escola Politécnica da USP

Sockets. André Restivo. April 29, Faculdade de Engenharia da Universidade do Porto. André Restivo (FEUP) Sockets April 29, / 27

Programação em Sockets visando verificar a diferença entre transmissão confiável (TCP) e não confiável (UDP)

Introdução à Programação com Sockets. Fernando Jorge Silveira Filho Daniel Sadoc Menasché

Programação TCP/IP (sockets)

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

Sistemas de Operação Sockets

Sistemas Operacionais II

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão

MC823 Atividade 1: Cliente/Servidor TCP Iterativo. 3 Modificando o servidor para retornar data e hora

camada de transporte SOCKET TCP UDP

Programação com Sockets. Redes de Computadores I 2007/2008

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Sistemas Distribuídos

Comunicação entre Processos

Modelo Cliente/Servidor e Introdução a Sockets

Cliente/Servidor. Programação com Sockets. Graça Bressan. Graça Bressan/LARC

Volnys Bernal 1. Trabalho Chat UDP. PSI 2653 Meios Eletrônicos Interativos I

sockets interprocess communication Taisy Weber

Redes de Computadores

Redes de Computadores e Aplicações

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

Redes de Computadores

COMUNICAÇÃO ENTRE APLICAÇÕES. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

06/10/2015. Modelo TCP/IP Camada de Transporte DISCIPLINA: TECNOLOGIA DE REDES DE COMPUTADORES. UDP User Datagram Protocol. UDP User Datagram Protocol

Um Tutorial sobre Sockets Parte I

Camada de Transporte Protocolos TCP e UDP

Agenda. Rede de Computadores (Técnico em Informática) Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP

Comunicação entre Processos por Troca de Mensagens. Prof. Celso maciel da Costa

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

UNIVERSIDADE ESTADUAL DE PONTA GROSSA SETOR DE CIÊNCIAS AGRÁRIAS E DE TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA ENGENHARIA DE COMPUTAÇÃO

Protocolos de Aplicação

Protocolos de Aplicação

Projeto e Desenvolvimento de Aplicações Cliente / Servidoras Para a INTERNET

Tecnologia de Redes. NAT e Masquerade

Programação de Sockets em C/C++

Agenda. Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP. Introdução ao protocolo TCP: Exemplo

Protocolo TCP. Redes TCP-IP. Agenda. Protocolo TCP Transmission Control Protocol. Introdução ao Protocolo TCP. Introdução ao Protocolo TCP

Exercício Programa Mini Web Server

Introdução. Protocolos de Aplicação. Introdução à pilha de comunicações TCP/IP. Interface de sockets. Protocolos de aplicação. Exemplos de trabalhos

Sistemas Operacionais:

Módulo 08 - Protocolo IP Página 1. Tecnologia de Redes. Volnys B. Bernal Versão de 15/06/2000. Agenda. Tecnologia de Redes

MC823 Laboratório de Teleprocessamento e Redes

Sockets IPv6 para C/C++ - Criando e Portando Aplicações

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Programação com sockets (em Java)

1 Projeto de software de clientes. 1

21/11/16. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface

Eng.ª Informática. Redes de Computadores. Frequência. 4 de Julho de 2006

Trabalho 02: Cliente e Servidor em C

Desenvolvimento de Produtos Mecatrônicos

PROTOCOLOS DE COMUNICAÇÃO

Redes TCP-IP. Protocolo ICMP. Pilha TCP/IP. Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP

Jéfer Benedett Dörr

3. Projeto e implementação de Servidores

Redes de Computadores

LEIC/LERC 2009/10 Repescagem do 2º Teste de Sistemas Operativos

Relatório do Laboratório 3

Tecnologia de Redes. Arquitetura de Rede de Computadores

Camada de Transporte. Protocolos TCP e UDP

Redes de Computadores. Lab 2 - Computer Networks

Programação de Sistemas. Sockets. Programação de Sistemas Sockets : 1/66

Agenda. Tecnologia de Redes. NAT e Masquerade. Introdução. Introdução. Firewalls. Introdução NAT Masquerade

Redes de Computadores. Prof. André Y. Kusumoto

IPv6 (Parte 2: Mecanismos de Transição)

Sistemas Distribuídos (Parte 4 - Aplicação Distribuída)

RC Peer-to-Peer. 1. Introdução. 2. Especificação. Redes de Computadores 2º Semestre 2008/2009. Projecto de Laboratório

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

RCI Secure Chat. 1. Descrição do projeto. Redes de Computadores e Internet 2º Semestre 2015/2016 Projeto de Laboratório

29-Aug-07. Histórico. Interfaces e Periféricos Redes como interfaces. Abstração da infraestrutura de rede como interface

REDES DE COMPUTADORES

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

TP4. Apoio ao projeto 4: tópicos avançados de sockets

Serviços de Comunicações Capítulo 3

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Redes de Computadores

TRANSPORTE. Prof. Me. Hélio Esperidião

Sockets e Threads em Java

Nível de Transporte Portas, Protocolos UDP e TCP

Camada de transporte. serviços providos a camadas superiores. qualidade de serviço. parâmetros-alvo (opções a negociar)

Tutorial de Sockets - Parte I Por: Frederico Perim

Módulo 3 Nível Transporte

Cliente-servidor com Sockets TCP

Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP

Transcrição:

2002-2015 Volnys Bernal 1 2002-2015 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br Departamento de Sistemas Eletrônicos Escola Politécnica da USP Resumo das chamadas sockets para UDP Uso das chamadas sockets para UDP 2002-2015 Volnys Bernal 3 2002-2015 Volnys Bernal 4 Resumo de Chamadas UDP Resumo das chamadas UDP Lado Cliente connect() send() Pré define o parceiro de comunicação para todo send() Lado Servidor bind() recvfrom() recv() sendto() 2002-2015 Volnys Bernal 5 2002-2015 Volnys Bernal 6 Resumo de Chamadas UDP Lado Cliente sendto() Informa o parceiro de comunicação a cada chamada Lado Servidor bind() recvfrom() recvfrom() sendto()

2002-2015 Volnys Bernal 7 2002-2015 Volnys Bernal 8 Objetivo Criar um novo socket (plug de comunicação). Aloca estruturas de dados no sistema operacional para suportar a comunicação. Resultado Retorna o descritor de arquivo (número inteiro). Sintaxe sd = socket (int domain, int type, int protocol) Sintaxe geral int socket(int domain, int type, int protocol) descriptor Para PF_INET use 0 Se SOCK_DGRAM - UDP Se SOCK_STREAM - TCP Observação: Quando um socket é criado, não possui nenhuma informação sobre o parsocket (endereços IPs e portas dos parceiros). Pilha de protocolos: PF_LOCAL (file) PF_INET (IPv4) PF_INET6 (IPv6) PF_X25 (X25) Tipo da comunicação: SOCK_STREAM (TCP) SOCK_DGRAM (UDP) SOCK_RAW (IP) 2002-2015 Volnys Bernal 9 2002-2015 Volnys Bernal 10 Tipo de serviço SOCK_STREAM Para ser utilizado com o protocolo TCP Canal de comunicação full duplex Fluxo de bytes sem delimitação Chamadas para transmissão e recepção de dados: read(), write() ou send(), recv() SOCK_DGRAM Para ser utilizado com o protocolo UDP Datagrama (mensagens) Chamadas para trasnmissão e recepção de dados: send(), sendfrom(), recv() ou recvfrom() Para criar um socket TCP sd = socket(af_inet, SOCK_STREAM, 0); Para criar um socket UDP sd = socket(af_inet, SOCK_DGRAM, 0); SOCK_RAW Permite acesso a protocolos de mais baixo nível Datagrama (mensagens) Chamadas para trasnmissão e recepção de dados: send(), recv() 2002-2015 Volnys Bernal 11 2002-2015 Volnys Bernal 12 Exemplo de criação de socket UDP int sd; // socket descriptor sd = socket(pf_inet, SOCK_DGRAM, 0); if (sd == -1) { perror( Erro na chamada socket ); exit(1); } Chamada Connect()

2002-2015 Volnys Bernal 13 2002-2015 Volnys Bernal 14 Objetivo Estabelecer uma sessão de comunicação TCP, UDP ou IP Detalhamento Deve ser utilizado somente no lado cliente UDP: Informa ao sistema operacional o socket address (IP+porta) do parceiro de comunicação Não são enviados datagramas TCP: Informa ao sistema operacional o socket address (IP+porta) do parceiro de comunicação Estabele a conexão TCP (3 way handshake) Sintaxe address (IP + porta) do parceiro (servidor) #include <netdb.h> int connect(int sd, struct sockaddr *serversockaddr, int size) descriptor Tamanho da estrutura de endereço (sockaddr_in) #include <netdb.h> int status; //estado da chamada struct sockaddr_in serveraddr; //endereço do servidor... // define endereço destino serveraddr.sin_family = AF_INET; serveraddr.sin_port = htons(serverport); status = inet_pton(af_inet,stringip,&serveraddr.sin_addr); if (status <= 0) perror( Erro na conversão do endereço IP ); // ativa connect status = connect( sd, (struct sockaddr *)&serveraddr, sizeof(serveraddr) ); if (status!= 0) perror( Erro na chamada connect ); 2002-2015 Volnys Bernal 15 Chamada connect Exemplo de iniciação da estrutura sockaddr_in int char IPstr[15] 80 htons() 10.0.0.1 inet_pton() 2002-2015 Volnys Bernal 16 AF_INET sockaddr_in sin_family sin_port sin_addr sin_zero 2002-2015 Volnys Bernal 17 2002-2015 Volnys Bernal 18 Função para transmissão de dados Pode ser utilizada por clientes e servidores int send(int sd, void * txbuffer, int msgsize, int flags) Descriptor Tamanho da mensagem Opções Ponteiro para buffer da mensagem (end. do buffer da mensagem)

2002-2015 Volnys Bernal 19 2002-2015 Volnys Bernal 20 Exemplo: char txbuffer[80]; status = send (sd, txbuffer, strlen(txbuffer)+1, 0) if (status < 0) perror( Erro na chamada send ); 2002-2015 Volnys Bernal 21 2002-2015 Volnys Bernal 22 Recebimento de datagramas Pode ser utilizada por clientes e servidores Exemplo: char rxbuffer[80]; int recv(int sd, void * rxbuffer, int rxbuffersize, int flags) Descriptor Tamanho do buffer Opções status = recv(sd, rxbuffer, sizeof(rxbuffer), 0) if (status < 0) perror( Erro na chamada recv ); printf( MSG recebida: %s\n,rxbuffer); Ponteiro para o buffer (end. do buffer de recepção) 2002-2015 Volnys Bernal 23 2002-2015 Volnys Bernal 24 Bloqueante Se não existirem mensagens na fila de recepção o processo fica aguardando sua chegada Exceção: quando o socket for criado como não bloqueante (ver fcntl(2)). Retorno Se a chamada tiver sucesso, o valor retornado é o tamanho do datagrama

2002-2015 Volnys Bernal 25 2002-2015 Volnys Bernal 26 Objetivo Fechar o descritor de arquivos (neste caso, fecha o socket). Se ainda existirem dados para serem transmitidos pelo socket, aguarda por alguns segundos a finalização desta transmissão. Resultado Fecha o descritor do arquivo. Sintaxe int close (int sd) Exemplo: int sd; // socket descriptor status = close(sd); if (status == -1) perror( Erro na chamada close ); 2002-2015 Volnys Bernal 27 2002-2015 Volnys Bernal 28 Exercício Exercício (1) Identifique a porta utilizada no serviço echo. (2) Implemente um cliente para o serviço echo utilizando o protocolo UDP. O serviço echo responde exatamente com a seqüência ASCII recebida. 2002-2015 Volnys Bernal 29 2002-2015 Volnys Bernal 30 Exercício (3) Identifique a porta utilizada no serviço daytime. Referências Bibliográficas (4) Implemente um cliente para o serviço daytime utilizando o protocolo UDP. O serviço daytime UDP responde com a data e hora do servidor no instante de recebimento do datagrama UDP.

2002-2015 Volnys Bernal 31 Referências Bibliográficas COMMER, DOUGLAS; STEVENS, DAVID Internetworking with TCP/IP: volume 3: client-server programming and applications Prentice Hall 1993