Cliente TCP. Programação sockets. Agenda. Cliente TCP. Chamadas sockets para TCP. Chamada socket() Chamada socket()

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

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

Cliente UDP. Programação sockets. Agenda. Cliente UDP. Resumo de Chamadas UDP. Resumo das 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

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

Servidor UDP Volnys Borges Bernal Departamento de Sistemas Eletrônicos Escola Politécnica da USP

Servidor TCP Volnys Borges Bernal Depto de Engenharia de Sistemas Eletrônicos Escola Politécnica da USP

Introdução à Programação Sockets

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

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. 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

Sumário. Introdução ao TCP/IP e à Internet API Sockets para comunicação via redes Exemplos

Programação de Aplicações em. Rede usando Sockets

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

Volnys Borges Bernal. Agenda. Resolução de Nomes. Introdução à resolução de nomes. Introdução à resolução de nomes

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

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

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

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

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

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

camada de transporte SOCKET TCP UDP

Programação TCP/IP (sockets)

Sistemas Distribuídos

API de Sockets. Modelo Cliente/Servidor (2/2) Modelo Cliente/Servidor (1/2) José Pedro Oliveira Sistemas Operativos I

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

Comunicação entre processos. Sistema centralizado

Sistemas de Operação Sockets

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

Modelo Cliente/Servidor e Introdução a Sockets

Leandro Soares de Sousa (DSc.) Página: Aula 05 - desenvolvimento com sockets

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

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

Comunicação entre Processos

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

Leandro Soares de Sousa (DSc.) Página: Parte III

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

sockets interprocess communication Taisy Weber

Comunicação entre Processos. 1. Pipes 2. Fifos 3. Sockets

Programação com Sockets

Sistemas Operacionais II

Redes de Computadores

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

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

Tecnologia de Redes. NAT e Masquerade

Redes de Computadores

Por Fernando Koyanagi

Redes de Computadores

Exercício Programa Mini Web Server

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

Camada de Transporte Protocolos TCP e UDP

Redes de Computadores e Aplicações

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

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

Comunicação entre Processos

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

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

Comunicação entre Processos

Problemas relacionados a exclusão mútua

Programação Orientada a Objetos para Redes de Computadores. Modelo Cliente-Servidor. Comunicação entre Processos. O que é um Socket?

Programação Orientada a Objetos para Redes de Computadores

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

Trabalho 02: Cliente e Servidor em C

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

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

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

MC823 Laboratório de Teleprocessamento e Redes

Programação com sockets (em Java)

Aplicações de Redes de Computadores

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

Tecnologia de Redes. Arquitetura de Rede de Computadores

Jéfer Benedett Dörr

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

Sistemas Operacionais:

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

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

29/3/16. Processamento Paralelo Arquitetura de Software para Interação Distribuída. Cliente/Servidor. Cliente/Servidor.

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

SEM 544 Desenvolvimento de Produtos Mecatrônicos

! Introdução! Pacote TCP! Número de Seqüência TCP! Estados TCP. " Estabelecimento de conexão " Troca de dados " Encerramento de conexão. !

Programação paralela em UNIX. Aleardo Manacero Jr.

1 Projeto de software de clientes. 1

Redes de Computadores II. Programação com Sockets em Python

Um Tutorial sobre Sockets Parte I

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

Aula 2 Arquitetura de Redes. Prof. Dr. S. Motoyama

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

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

PROTOCOLOS DE COMUNICAÇÃO

Protocolos e Arquiteturas de Redes. Thiago Leite

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

Arquitetura de Redes de Computadores

FUNDAMENTOS DE REDES DE COMPUTADORES. Lista de Exercícios AV2-01. Luiz Leão

Redes de Computadores. Prof. André Y. Kusumoto

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

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

Transcrição:

2002-2009 Volnys Bernal 1 2002-2009 Volnys Bernal 2 Agenda Volnys Borges Bernal volnys@lsi.usp.br http://www.lsi.usp.br/~volnys Resumo das chamadas sockets para TCP Chamada close() 2002-2009 Volnys Bernal 3 2002-2009 Volnys Bernal 4 Chamadas sockets para TCP Lado Cliente Lado Servidor Resumo das chamadas sockets para TCP socket() socket() bind() listen() connect() accept() write() read() read() write() close() close() 2002-2009 Volnys Bernal 5 2002-2009 Volnys Bernal 6 Criar um novo socket (plug de comunicação) Resultado Retorna um descritor de arquivo. int socket (int domain, int type, int protocol) Observação: Quando um socket é criado ele não possui nenhuma informação armazenada (endereços IPs e portas). Endereços IPs e portas são informados nas chamadas bind() (lado servidor) e connect() (lado cliente). 1

2002-2009 Volnys Bernal 7 2002-2009 Volnys Bernal 8 #include <sys/socket.h> int socket(int domain, int type, int protocol) descriptor Família de protocolos PF_INET (IPv4) PF_INET6 (IPv6) PF_X25 (X25) Tipo da comunicação SOCK_STREAM (TCP) SOCK_DGRAM (UDP, TCP) SOCK_RAW (IP) Id. do protocolo UDP (17) TCP (6) Tipo de serviço SOCK_STREAM Fluxo de bytes sem delimitação Full duplex Orientada a conexão Comunicação confiável: sem perda de dados, sem duplicação, entrega na ordem Deve ser utilizado com o protocolo TCP Chamadas para transmissão e recepção de dados read(), write() ou send(), recv() SOCK_DGRAM Datagrama (mensagens) Deve ser utilizada com o protocolo UDP Chamadas para transmissão e recepção de dados (send, recv) SOCK_RAW Permite acesso a protocolos de mais baixo nível Datagrama (mensagens) Chamadas para transmissão e recepção de dados (send, recv) 2002-2009 Volnys Bernal 9 2002-2009 Volnys Bernal 10 Exemplo de criação de socket TCP #include <sys/socket.h> int sd; sd = socket(pf_inet, SOCK_STREAM, 6) if (sd == -1) perror( Erro na chamada socket ); Obs: O valor 6 representa o protocolo TCP. Foi obtido consultando /etc/protocols. Pode também ser obtido através de resolução de nomes via getprotobyname(). 2002-2009 Volnys Bernal 11 2002-2009 Volnys Bernal 12 Define uma sessão de comunicação TCP, UDP ou IP Informa à pilha da comunicação o endereço (IP+porta) do parceiro de comunicação Funcionamento Deve ser executado no lado cliente UDP: TCP: Não são enviados datagramas Ativa o procedimento de estabelecimento de conexão TCP address (IP + porta) do servidor #include <netdb.h> int connect(int sd, struct sockaddr *serveraddr, int size) descriptor Tamanho da estrutura de endereço (sockaddr_in) 2

2002-2009 Volnys Bernal 13 2002-2009 Volnys Bernal 14 #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( socketdescriptor, (struct sockaddr *)&serveraddr, sizeof(serveraddr) ); if (status!= 0) perror( Erro na chamada connect ); 2002-2009 Volnys Bernal 15 2002-2009 Volnys Bernal 16 Transmissão/escrita de dados em um descritor Descritor: descritor sockets, descritor de arquivo,... Pode ser utilizada por cliente ou servidor Valor retornado pela função Positivo: quantidade de bytes escritos -1: erro #include <unistd.h> int write(int sd, void *buf, int count) Descriptor Tamanho da mensagem Ponteiro para mensagem (end. do buffer da mensagem) 2002-2009 Volnys Bernal 17 2002-2009 Volnys Bernal 18 status = write(sd,txbuffer, strlen(txbuffer)+1) perror( Erro na chamada write ); 3

2002-2009 Volnys Bernal 19 2002-2009 Volnys Bernal 20 Recepção/leitura de dados de um descritor Descritor: descritor sockets, descritor de arquivo,... Pode ser utilizada por cliente ou servidor Valor retornado pela função >0: quantidade de bytes lidos 0: end of file -1: erro : #include <unistd.h> int read(int sd, void *buf, int buffersize) Descriptor Tamanho do buffer Ponteiro para o buffer (end. do buffer de recepção) 2002-2009 Volnys Bernal 21 2002-2009 Volnys Bernal 22 status = read(sd, bufferp, buffersize) perror( Erro na chamada read ); Chamada close() 2002-2009 Volnys Bernal 23 2002-2009 Volnys Bernal 24 Chamada close() int sd; // socket descriptor Exercício status = close(sd); perror( Erro na chamada close ); 4

2002-2009 Volnys Bernal 25 2002-2009 Volnys Bernal 26 Exercício (1) Implemente um cliente para o serviço echo utilizando o protocolo TCP. Referências Bibliográficas Obs: O serviço TCP echo responde exatamente com a seqüência ASCII enviada. 2002-2009 Volnys Bernal 27 Referências Bibliográficas COMMER, DOUGLAS; STEVENS, DAVID Internetworking with TCP/IP: volume 3: client-server programming and applications Prentice Hall 1993 5