Documentos relacionados
Programação com Sockets

Desenvolver um pequeno aplicativo que possa demonstrar a utilização de sockets como meio de comunicação em sistemas distribuídos.

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

Uma aplicação distribuída

Comunicação entre Processos

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

Cliente-servidor com Sockets TCP

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

Java 2 Standard Edition Fundamentos de

Cliente-servidor com Sockets TCP

Programação com sockets (em Java)

UNIVERSIDADE. Sistemas Distribuídos

Redes de Computadores e Aplicações

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

Capítulo 7 CAMADA DE TRANSPORTE

Redes de Computadores (PPGI/UFRJ)

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

Aula 30 - Sockets em Java

Sistemas Distribuídos

Programação de sockets com TCP

INF1013 MODELAGEM DE SOFTWARE

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

Sockets em Ruby. Curso de Tecnologia em Redes de Computadores Programação para Redes

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

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

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

Redes de Computadores. TCP Orientação à Conexão. Prof. Othon M. N. Batista Mestre em Informática

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

Modelo Cliente/Servidor e Introdução a Sockets

IPTABLES. Helder Nunes

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

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

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

Sistemas Distribuídos

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos

Redes de Computadores

Comunicação em Sistemas Distribuídos

Componentes de um sistema de firewall - I

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

Tipos de Servidores. Servidores com estado

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Firewall. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes. Campus Cachoeiro Curso Técnico em Informática

Sistemas de Operação Sockets

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

Sockets. Bruno Guimarães Lucas Rossini

Traceroute É uma ferramenta de diagnóstico que rastreia a rota de um pacote através de uma rede de computadores e que utiliza os protocolos IP e ICMP.

Segurança de Redes de Computadores

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

3. Projeto e implementação de Servidores

TUTORIAL JAVA AS - HTTP CLIENT COMPOSITION ENVIROMENT 7.1

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

SISTEMAS DISTRIBUÍDOS

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

VPN entre Unimed Federação do Paraná e Singulares do Paraná. Gustavo Kochan Nunes dos Santos. Curso de Especialização em Redes e Segurança de Sistemas

Modelos de Camadas. Professor Leonardo Larback

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Compartilhamento de internet usando recursos do Windows XP

Load Balance / Route Policy (para series Vigor 2860 / Vigor 2925)

Wireshark. Captura de Protocolos da camada de aplicação. Maicon de Vargas Pereira

Capítulo 11: NAT para IPv4

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

O Protocolo IP (2) Prof. José Gonçalves Pereira Filho Departamento de Informática

DarkStat para BrazilFW

Arquitetura de Rede de Computadores

Componentes de um sistema de firewall - II. Segurança de redes

Sistemas Distribuídos

1. DHCP a. Reserva de IP

FTP - Protocolo. O protocolo FTP é o serviço padrão da Internet para a transferência de arquivos entre computadores.

A máscara de sub-rede pode ser usada para dividir uma rede existente em "sub-redes". Isso pode ser feito para:

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Relatório do Laboratório 3

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

Sistemas Distribuídos Java Sockets

Configurando um servidor DHCP

Características de Firewalls

Testes de Penetração: Explorador de Portas

LSOF - LiSt Open Files

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

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

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.

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

Criando scanner para Oracle vulneráveis a exploits do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

ESTRUTUTA DE REDE DE ACESSO!

Teleprocessamento e Redes

Introdução à Programação Aula 11 Mais sobre ciclos e iteração

Rede d s d e d Com o pu p t u ado d r o es Conceitos Básicos M d o e d los o de d Re R de d s:

Configuração de um servidor FTP. Campus Cachoeiro Curso Técnico em Informática

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Threads e Sockets em Java. Threads em Java. Programas e Processos

Introdução à Computação Móvel IP Móvel. Movimentação de Host. Movimentação de Host. Francisco José da Silva e Silva

STK (Start Kit DARUMA) Utilizando conversor Serial/Ethernet com Mini-Impressora DR600/DR700.

MODELO CLIENTE SERVIDOR

Classe A: Apenas o primeiro octeto identifica a rede e os três últimos identificam os Hosts.

Transcrição:

SocketBasico Receita: SocketBasico Esta receita é baseada em um material que preparei para uso em aulas para demostrar a programação básica para redes usando socket com a intensão de ser uma "prova de conceitos" sobre o TCP/UDP. Estrutura Básica de Programas para Rede O Python implementa a interface de rede utilizando os fundamentos da API de Socket. Todo socket pode estar em modo ativo ou passivo. Quando ele é criado ele esta no modo ativo. Para o servidor poder ficar escutando um porta é necessário colocar o socket do servidor em modo passivo. Seqüência no Cliente: 1.. 3. 4.. 6. Se foi fornecido um nome de hospedeiro converter em endereço IP; Se foi fornecido um nome de protocolo de transporte converter em número; Criar o socket (função socket); Conecta com o servidor (função connect); Enviar/Receber dados (permanecer nesse passo enquanto tiver dados para enviar/receber); Fechar o socket. Seqüência no Servidor: 1.. 3. 4.. 6. 7.. Se foi fornecido um nome de protocolo de transporte converter em número; Criar o socket (função socket); Coloca um endereço local, endereço IP e porta, no socket (função bind); Instrui o sistema operacional para colocar o socket em modo passivo (função listen); Aceita uma nova conexão (função accept); Enviar/Receber dados (permanecer nesse passo enquanto tiver dados para enviar/receber); Fechar o socket. Volta ao passo para aceitar outra conexão. Os passos 4 e do servidor são feito quando utilizamos protocolo de transporte orientado a conexão (TCP). O servidor tipicamente fica em laço infinito aceitando novas conexões. Enquanto o servidor atende uma conexão ele fica dedicado a ela. Para evitar isso é 1 of 7-09-006 17:1

possível fazer um passo intermediário entre o e o 6 para criar um novo processo ou thread para tratar da nova conexão que esta chegando. Com isso o processo/thread pai fica somente recebendo as conexões e o processo/thread filho trata das requisições dos clientes. Cliente e Servidor com UDP Cliente UDP 3 HOST = '19.16.1.' # Endereco IP do Servidor 6 udp = socket.socket(socket.af_inet, socket.sock_dgram) 7 dest = (HOST, PORT) 9 print 'Para sair use CTRL+X\n' 11 msg = raw_input() 1 while msg <> '\x1': 13 udp.sendto (msg, dest) 14 msg = raw_input() 1 16 udp.close() === Servidor UDP=== 3 HOST = '' # Endereco IP do Servidor 6 udp = socket.socket(socket.af_inet, socket.sock_dgram) 7 orig = (HOST, PORT) 9 udp.bind(orig) 11 while True: 1 msg, cliente = udp.recvfrom(4) 13 print cliente, msg 14 1 udp.close() of 7-09-006 17:1

Cliente e Servidor com TCP Cliente TCP 3 HOST = '17.0.0.1' # Endereco IP do Servidor 6 tcp = socket.socket(socket.af_inet, socket.sock_stream) 7 dest = (HOST, PORT) 9 tcp.connect(dest) 11 print 'Para sair use CTRL+X\n' 1 13 msg = raw_input() 14 while msg <> '\x1': 1 tcp.send (msg) 16 msg = raw_input() 17 1 tcp.close() Servidor TCP 3 HOST = '' # Endereco IP do Servidor 6 tcp = socket.socket(socket.af_inet, socket.sock_stream) 7 orig = (HOST, PORT) 9 tcp.bind(orig) tcp.listen(1) 11 1 while True: 13 con, cliente = tcp.accept() 14 print 'Concetado por', cliente 1 while True: 16 msg = con.recv(4) 17 if not msg: break 1 print cliente, msg 19 print 'Finalizando conexao do cliente', cliente 0 con.close() 3 of 7-09-006 17:1

Servidor TCP Concorrente import os 3 import sys 4 HOST = '' # Endereco IP do Servidor 6 PORT = 000 # Porta que o Servidor esta 7 tcp = socket.socket(socket.af_inet, socket.sock_stream) 9 orig = (HOST, PORT) 11 tcp.bind(orig) 1 tcp.listen(1) 13 14 while True: 1 con, cliente = tcp.accept() 16 pid = os.fork() 17 if pid == 0: 1 tcp.close() 19 print 'Concetado por', cliente 0 while True: 1 msg = con.recv(4) if not msg: break 3 print cliente, msg 4 print 'Finalizando conexao do cliente', cliente con.close() 6 sys.exit(0) 7 else: con.close() Usando Thread para Concorrência import thread 3 4 HOST = '' # Endereco IP do Servidor PORT = 000 # Porta que o Servidor esta 6 7 def conectado(con): 9 print 'Concetado por', cliente while True: 11 msg = con.recv(4) 1 if not msg: break 4 of 7-09-006 17:1

13 print cliente, msg 14 print 'Finalizando conexao do cliente', cliente 1 con.close() 16 thread.exit() 17 1 tcp = socket.socket(socket.af_inet, socket.sock_stream) 19 orig = (HOST, PORT) 0 1 tcp.bind(orig) tcp.listen(1) 3 4 while True: con, cliente = tcp.accept() 6 thread.start_new_thread(conectado, tuple([con])) 7 tcp.close() Volta para CookBook. MarcioMinicz last edited 006-0-07 16:49:00 by MarcioMinicz of 7-09-006 17:1