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



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

Modelo Cliente/Servidor e Introdução a Sockets

sockets interprocess communication Taisy Weber

Sistemas de Operação Sockets

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

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

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

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

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

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

Um Tutorial sobre Sockets Parte I

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

Comunicação entre Processos

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

Programação com sockets (em Java)

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

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

Sistemas Distribuídos

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

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

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

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

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

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

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTÁTISTICA GRADUAÇÃO EM CIÊNCIAS DA COMPUTAÇÃO DISCIPLINA: COMUNICAÇÃO DE DADOS

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

Comunicação entre processos. Sistema centralizado

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

UNIVERSIDADE. Sistemas Distribuídos

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

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

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

Rede de Computadores II

Comunicação em Sistemas Distribuídos

INF1013 MODELAGEM DE SOFTWARE

SIMULADOR DE ROTEAMENTO DE PACOTES (V. 3 20/05/2010)

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

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

Programação de sockets com TCP

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

Sockets. Bruno Guimarães Lucas Rossini

Relatório do Laboratório 3

3. Projeto e implementação de Servidores

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

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

MODELO CLIENTE SERVIDOR

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

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

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

Programação TCP/IP (sockets)

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

Programação de Sockets

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

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

Protocolos de Aplicação

Capítulo 7 CAMADA DE TRANSPORTE

ESTUDO DE CASO WINDOWS VISTA

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


Informática I. Aula Aula 22-03/07/06 1

A Camada de Transporte

Um pouco do Java. Prof. Eduardo

Programação com Sockets

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

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

REDES DE COMPUTADORES

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

Aula 30 - Sockets em Java

Entendendo como funciona o NAT

Java 2 Standard Edition Fundamentos de

Redes de Computadores (PPGI/UFRJ)

Redes de Computadores

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Sistemas Distribuídos

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

Objetivo. Processamento Paralelo Middleware. Cliente/Servidor. Histórico. Cliente/Servidor. Programação de sistemas distribuídos

Sistemas Distribuídos Java Sockets

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

MC823 Laboratório de Teleprocessamento e Redes

Sistemas Distribuídos

Capítulo II Modelos de Programação Distribuída

Protocolos de Redes Revisão para AV I

Rede de Computadores

Sistemas Distribuídos. Coulouris Capítulo 4

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Sistemas Operacionais:

REDES DE COMPUTADORES

SEM 544 Desenvolvimento de Produtos Mecatrônicos

Redes de Computadores. Protocolos de comunicação: TCP, UDP

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

GERENCIADOR DE CORREIO ELETRÔNICO (V. 2 26/04/2010)

Guia de Conectividade Worldspan Go Res! A V A N Ç A D O

Transcrição:

Aula Prática Comunicação em SOCKTS Disciplina: INF01151 Prof. Dr. Cláudio Fernando Resin Geyer Monitor: Julio Anjos

Agenda 1 - Objetivo Apresentar na prática a comunicação entre processos usando sockets 2- Roteiro - Sockets - Sockets Linux - TCP Socket - UDP Socket

Socket Um socket é uma abstração que indica a extremidade final de um canal de comunicação Na prática, um socket é uma interface de comunicação bidirecional entre processos Um socket é um processo envia ou recebe dados de outros processos (canal de comunicação) Associados a um socket existem diversos modelos e primitivas para a realização da comunicação entre processos distintos

Sockets Linux Linux utiliza sockets como abstração geral para vários tipos de entrada e saída No que diz respeito a redes, o Linux implementa a interface conhecida como Berkeley socket interface - Uma biblioteca C de 1983 como parte do BSD 4.2 - Define um conjunto de funções que permitem a troca de dados entre processos - Considerada o padrão de facto para uma interface de programação de rede

Sockets Linux A interface é definida basicamente nos seguintes arquivos - <sys/socket.h>: definições das funções e tipos de dados básicos - <sys/types.h>: definições de tipos de dados - <netinet/in.h>: definições de tipos de dados relacionados a endereços Ela oferece chamadas de sistema e funções para: - Criação e associação de endereço do socket - Conexão e desconexão de um socket - Escuta e aceite de conexões - Envio e recebimento de dados - Manipulação de endereços

Sockets Linux Tipos de domínio - Apenas os que serão usados. Existem alguns outros que podem ser encontrados na documentação - Unix (AF_UNIX) dois processos que compartilham um mesmo sistema de arquivos se comunicam - Internet (AF_INET) dois processos executando em quaisquer dois hosts na internet se comunicam Tipos de sockets - Stream (SOCK_STREAM) comunicação bidirecional confiável (entrega de pacotes garantida e em ordem correta) protocolo default TCP - Datagram (SOCK_DGRAM) comunicação bidirecional não confiável ( não existe garantia de entrega nem de ordem de entrega de pacotes) - protocolo default UDP

SOCK_STREAM (TCP) Servidor Cliente

SOCK_STREAM (TCP) Servidor (Exemplo) //Criacao do socket no servidor serversocket = socket(af_inet,sock_stream,0); //Ligando o endereco do servidor ao socket bind(serversocket, (struct sockaddr *)&server_addr, sizeof(struct sockaddr); //Indica que o socket deve "escutar" listen(serversocket, 1); printf("servidor escutando na porta: %d.\n", PORTNUMBER); //Servidor aguardando por conexao connectionsocket = accept(serversocket, (struct sockaddr *)&client_addr, &socketsize); //Lendo mensagem enviada pelo cliente tamr = read(connectionsocket, buffer, 100); Cliente (Exemplo) clientsock = socket(pf_inet, SOCK_STREAM, 0); //Efetua conexao com o sevidor conn = connect(clientsock, (struct sockaddr *) &s, sizeof(s)); tams = write(clientsock,buffer,strlen(buffer));

SOCK_DGRAM (UDP) Servidor Cliente

SOCK_DGRAM (UDP) int socket(int domain, int type, int protocol) - Criar socket int bind(int sockfd, struct sockaddr *my_addr, int addrlen) - Ligar o socket a um endereço int listen(int sockfd, int backlog) - Ficar escutando requisições int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) - Aceita/aguarda um pedido de conexão. Gera um descritor especifico para cada conexão int connect(int sockfd, struct sockaddr *addr, socklen_t *addrlen) Solicitar uma conexão int send(int sockfd, constvoid*msg, int len, int flags) int sendto(int sockfd, constvoid*msg, int len, unsignedint flags, conststructsockaddr*to, socklen_ttolen) mensagens em sockets tipo SOCK_STREAM pode-se usar send e sendto. Com o tipo SOCK_DGRAM somente sendto int recv(int sockfd, void*buf, int len, unsignedint flags) int recvfrom(int sockfd, void*buf, int len, unsignedint flags, structsockaddr*from, int *fromlen) - mensagens em sockets tipo SOCK_STREAM pode-se usar recv e recvfrom. Com o tipo SOCK_DGRAM somente recvfrom close(sockfd) fechar o socket

Tarefas * O programa é um chat cliente/servidor para processar a comunicação entre um cliente e o servidor. O programa é interativo e pode processar as mensagens de um único cliente. Ele é escrito utilizando a comunicação com Sockts para os protocolos TCP e UDP e utiliza a porta 5000 para estabelecer a conexão. Cada grupo deverá compilar os programas em TCP e UDP e verificar seu funcionamento. Os testes de comunicação devem ser feitos de pelo menos 2 máquinas diferentes. 1. Compile e execute todos os exemplos: conecte o cliente UDP no servidor UDP, e conecte o cliente TCP no servidor TCP. A seguir, aponte (por escrito) as principais semelhanças e as principais diferenças entre as 2 formas de comunicação apresentadas a partir do código e do que se observou na execução dos exemplos em relação aos seguintes itens: 1. Criação do socket; 2. Nomeação e endereçamento de processos; 3. Modelo de comunicação (passos para realização de todo o ciclo de comunicação); 4. Chamadas usadas para troca de dados; 2. Modifique o código do exemplo cliente/servidor TCP para tornar o servidor multithreaded, ou seja, a cada cliente que o servidor aceitar, uma thread deve ser criada pelo servidor para atender a vários cliente simultaneamente. Considere também o uso de semáforos para controle de acesso à sessão crítica