Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 18

Sistemas Distribuídos e Paralelos

Aula Prática IV – Comunicação entre Processos

Prof. Engº. Daniel Nvula Kasso


1
SUMÁRIO

Sockets
Comunicação por Fluxo

2
BIBLIOGRAFIA

Deitel, Paul e Deitel, Harvey. 2017. Java Como


Programar. [trad.] Edson Furmankiewicz. 8ª. São Paulo :
Pearson Education do Brazil, 2017. cap. 27.
Coulouris, George, Dollimore, Jean e Kindberg, Tim.
2007. Sistemas Distribuídos. Conceitos e Projeto.
Bookman, 2007. cap. 4. pág. 127-136.

3
SOCKETS

Cada socket é associado a um protocolo em patricular-


UDP e TCP.
Java fornece uma classe, InetAddress, que representa
endereços IP, para permitir a utilização dos protocolos
TCP e UDP.
As instâncias de InetAddress que contêm endereços IP
podem ser criadas pela chamada ao método estático
InetAddress, fornecendo-se um nome de host DNS
como argumento. O método usa DNS para obter o
endereço IP correspondente.
InetAddress aComputer =
InetAddress.getByName("D.N.Kasso");
4
GRUPOS DE NÚMEROS DE PORTA

Portas bem conhecidas (Números de 0 a 1023) - Esses


números estão reservados para serviços e aplicações.
Portas registradas (Números de 1024 a 49151) - Estes
números de portas são designados pela IANA para
uma entidade solicitante usar com aplicações ou
processos específicos.
Portas Dinâmicas ou Privadas (Números 49152 a
65535) - São geralmente designadas dinamicamente
pelo sistema operacional do cliente, quando a conexão
para um serviço se inicia.

5
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:

Etapa 1: Cria um ServerSocket

ServerSocket server = new


ServerSocket(NumeroDaPorta, comprimentoDaFila);

6
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:

Etapa 2: Espera uma conexão

Socket conexao = new server. accept();

7
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:

Etapa 3: Obter os fluxos de E/S do Socket

O servidor envia informações ao cliente via um


OutputStream e recebe informações do cliente via
um InputStream.

8
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:
Etapa 3: Obter os fluxos de E/S do Socket
 Método getOutputStream no Socket para obter uma
referência ao OutputStream do Socket e
Método getInputStream no Socket para obter uma
referência ao InputStream do Socket.
métodos write de OutputStream e com o método
read de InputStream, enviar ou receber bytes
respectivamente.
9
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:
Etapa 3: Obter os fluxos de E/S do Socket
DataInputStream e DataOutputStream permitem
representações binárias de tipos de dados
primitivos serem lidas e escritas de forma
independente de máquina.

10
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando


sockets de fluxo em Java requer cinco etapas:
Etapa 4: Realiza o processamento
Fase de processamento, no qual o servidor e o cliente
se comunicam via objectos OutputStream e
InputStream ter os fluxos de E/S do Socket.

11
COMUNICAÇÃO POR FLUXO

Para estabelecer um servidor simples utilizando sockets


de fluxo em Java requer cinco etapas:
Etapa 5: Fecha a conexão
● Quando a transmissão está completa, o servidor fecha
a conexão invocando o método close nos fluxos
e no Socket.

12
COMUNICAÇÃO POR FLUXO

Para estabelecer um cliente simples utilizando sockets


de fluxo em Java requer quatro etapas:

Passo 1: Cria um Socket para conectar ao servidor


Socket conexao = new Socket(enderecoDoServidor,
porta);

13
COMUNICAÇÃO POR FLUXO

Para estabelecer um cliente simples utilizando sockets


de fluxo em Java requer quatro etapas:
Passo 2: Obtém os fluxos de E/S do Socket
Passo 3: Realiza o processamento
Passo 4: Fecha a conexão

14
EXERCÍCIO 1

Um cliente deseja saber a soma de números em uma


lista de inteiros, fazendo uso dos serviços oferecidos
pelo servidor. Implemente um programa cliente-
servidor que permite resolver o problema.

15
EXERCÍCIO 2

Um cliente deseja saber a quantidade de palavras em


uma lista de Strings que começam com uma letra "x"
fornecida por ele, fazendo uso dos serviços
oferecidos pelo servidor. Implemente um programa
cliente-servidor que permite resolver o problema.

16
EXERCÍCIO 3

Um cliente deseja saber se uma palavra é palíndrome


ou não, fazendo uso dos serviços oferecidos pelo
servidor. Implemente um programa cliente-servidor
que permite resolver o problema.

17
Sistemas Distribuídos e Paralelos

Aula IV – Comunicação entre Processos

Prof. Engº. Daniel Nvula Kasso


18

Você também pode gostar