redes de computadores i

10
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -

Upload: badru

Post on 19-Jan-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Redes de Computadores I. Prof. Mateus Raeder. Universidade do Vale do Rio dos Sinos - São Leopoldo -. Programação com sockets. Uma interface ( uma “ porta ”), local ao hospedeiro , criada por e pertencente à aplicação, e controlado pelo SO, através da qual um processo de - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Redes de  Computadores I

Redes de Computadores I

Prof. Mateus Raeder

Universidade do Vale do Rio dos Sinos- São Leopoldo -

Page 2: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Programação com sockets

• Meta: aprender construir aplicação cliente/servidor que se comunica usando sockets.

Uma interface (uma “porta”),local ao hospedeiro, criadapor e pertencente à aplicação,e controlado pelo SO, atravésda qual um processo deaplicação pode tanto enviarcomo receber mensagensde/para outro processo deaplicação(remoto ou local)

Page 3: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Programação com sockets usando TCP

• Socket: uma porta entre o processo de aplicação e um protocolo de transporte fim-a-fim (UDP ou TCP)

• Serviço TCP: transferência confiável de bytes de um processo para outro

process

TCP withbuffers,

variables

socket

controlled byapplicationdeveloper

controlled byoperating

system

host orserver

process

TCP withbuffers,

variables

socket

controlled byapplicationdeveloper

controlled byoperatingsystem

host orserver

internet

Page 4: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Cliente deve contactar o servidor:– processo servidor já deve

estar executando antes de ser contactado

– servidor deve ter criado socket (porta) que aceita o contato do cliente

Cliente contata o servidor:– criando um socket TCP– especificando endereço IP e

número da porta do processo servidor

Quando o cliente cria o socket: cliente TCP estabelece conexão com o TCP do servidor

Programação com sockets usando TCP

TCP fornece a transferência confiável,

entre o cliente e oservidor

ponto de vista da aplicação

Page 5: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo de aplicação cliente-servidor:

• Cliente lê linha da entrada padrão (fluxo doUsuário), envia para servidor via socket (fluxo paraServidor).

• Servidor converte linha para letra maiúscula, e devolve para o cliente.

• Cliente lê linha modificada do socket (fluxo doServidor), imprime-a

• Input strem: sequencia de bytes para dentro do processo

• Output stream: sequencia de bytes para fora do processo

Programação com sockets usando TCP

Socket do cliente

doUsuario Para

Serv

idor

doSe

rvid

or

Page 6: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Interações cliente/servidor com socket: TCP

Page 7: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo: cliente Java TCP (1)

import java.io.*;

import java.net.*;

class ClienteTCP {

public static void main(String argv[]) throws Exception

{

String frase;

String fraseModificada;

BufferedReader doUsuario =

new BufferedReader(new InputStreamReader(System.in));

Socket socketCliente = new Socket(”idHosp", 6789);

DataOutputStream paraServidor =

new DataOutputStream(socketCliente.getOutputStream());

Contém classe parastreams de I/O

Contém classes parasuporte a rede

Criafluxo de entrada

Criasocket de cliente,conexão ao servidor

Criafluxo de saídaanexado ao socket

Page 8: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo: cliente Java TCP (2)

BufferedReader doServidor =

new BufferedReader(new

InputStreamReader(socketCliente.getInputStream()));

frase = doUsuario.readLine();

paraServidor.writeBytes(frase + '\n');

fraseModificada = doServidor.readLine();

System.out.println(”Do Servidor: " + fraseModificada);

socketCliente.close();

}

}

Criafluxo de entradaligado ao socket

Envia linhaao servidor

Lê linhado servidor

Page 9: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo: servidor Java TCP (1)

import java.io.*;

import java.net.*;

class servidorTCP {

public static void main(String argv[]) throws Exception

{

String fraseCliente;

String fFraseMaiusculas;

ServerSocket socketRecepcao = new ServerSocket(6789);

while(true) {

Socket socketConexao = socketRecepcao.accept();

BufferedReader doCliente =

new BufferedReader(new

InputStreamReader(socketConexao.getInputStream()));

Cria socketpara recepçãona porta 6789

Aguarda, no socketpara recepção, ocontato do cliente

Cria fluxo deentrada, ligadoao socket

Page 10: Redes de  Computadores I

Redes de Computadores I – Prof. Mateus Raeder

Exemplo: servidor Java TCP (2)

DataOutputStream paraCliente =

new DataOutputStream(socketConexão.getOutputStream());

fraseCliente= doCliente.readLine();

fraseEmMaiusculas= fraseCliente.toUpperCase() + '\n';

paraClient.writeBytes(fraseEmMaiusculas);

}

}

}

Cria fluxode saída, ligadoao socket

Lê linhado socket

Escreve linhapara o socket

Final do laço while.Volta ao início e aguardaconexão de outro cliente