Sei sulla pagina 1di 17

Curso Engenharia Informtica

Tema:
Comunicao Via Socket
Trabalho de Sistemas Operativos II
Turno: Manh
Sala:U-106
Grupo 8
Prof: Paulo Julio

Integrantes do Grupo

Hugo Frederico Nicolau Francisco-18124


Jos Joo Valentim Francisco-18455
Solange Andrade Moche-19296
Lucinda Najara da Silva Mesquita-23390

Introduo
Os sockets so compostos por um conjunto de primitivas do sistema operacional e foram
originalmente desenvolvidos para o BSD Unix.
Como vimos no exemplo, um socket servidor precisa definir o nmero da porta para
receber conexes dos clientes. Este nmero pode variar entre 0 e 65535, porm, em nossas
aplicaes s devemos utilizar de 1024 em diante, pois as portas com nmeros abaixo
deste so reservados para o uso do sistema (por exemplo a porta 80 usada pelo protocolo
HTTP, 25 pelo SMTP, 110 pelo POP3, entre vrios outros servios).
Exemplo:
Os Sockets esta dividido por: Sockets UDP e Sockets TCP.
Sockets UDP
Sockets TCP

Objectivos
Objectivos Gerais:
Entender em detalhe o funcionamento e configurao de uma API java
para comunicao socket/porta pr-definida.

Objectivos Especficos:
Instalar o editor eclipse no computador;
Importarmos o projecto cliente, que contm cdigo JAVA para a funo
do cliente e do servidor;
Analisar trfego em sistemas informticos distribudos, atravs da
mquina real e de mquinas diferente;
Adquirir conhecimentos sobre a captura de envio, atravs da anlise de
pacotes (sniff).

Servidor

Servidor um software ou
computador, com sistema
de computao centralizada que
fornece servios a uma rede de
computador, chamada de cliente

Cliente-Servidor

Snippets

O modelo cliente-servidor em computao,


uma estrutura de aplicao distribuida que
distribui as tarefas e cargas de trabalho entre os
fornecedores de um recurso ou servio,
designados como servidores, e os requerentes
dos servios, designados como clientes.

Snippet um termo de programao para


uma pequena regio de cdigo-fonte
reutilizvel, cdigo de mquina ou texto.

Prtica
Enviando um ficheiro de texto para mesma mquina:
Criamos uma pasta na partio C: com nome de teste_send

Criamos um ficheiro de texto

No ficheiro escrevemos Grupo-8

Criamos uma outra pasta na partio C: com nome teste_receive

Criao do projecto no Eclipse

Na classe client, configuramos o socket com o endereo IP por defeito, utilizamos a


porta 5500 e passamos o endereo da pasta teste_send

Na classe Server passamos o endereo da pasta teste_receive

Executando o Server

Executando o Client

Inserir o nome do ficheiro a enviar teste.txt

Notamos que o ficheiro foi enviado com sucesso e possui nove caracteres

Verificamos o ficheiro enviado e a quantidade de caracteres que possui

Enviando um ficheiro para uma mquina diferente:


Testando o Ping

Mquina servidor classe Server

Mquina Cliente alterando o endereo da classe client

Executando o server na mquina servidor

Executando o client na mquina cliente

Inserir o nome do ficheiro a enviar na mquina cliente

Verificao do ficheiro enviado na mquina servidor

Confirmao de ficheiro enviado para o servidor

Capturas de pacotes no Wireshark


Filtrando o protocol TCP

Apartir deste imagem foi possvel notarmos

Class Client
//Pacote ou class que permite escrever ficheiro fonte
import java.io.OutputStream;
OutputStream out = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(out);
BufferedWriter writer = new BufferedWriter(osw);
//Instancia File que tem como argumento a localizao do Stream e
variavel
File f = new File("C:/teste_send/"+fName);
// instancia Socket para comunicar com o servidor
Socket socket = new Socket("192.168.137.185", 5500);

//Funo para escrita e gravao do ficheiro


writer.write(f.getName()+"\n");
writer.flush();

Class servidor
//Pacote ou class que permite ler ficheiro fonte
import java.io.InputStream;
InputStream in = clSocket.getInputStream();
InputStreamReader isr = new
InputStreamReader(in);
BufferedReader reader = new BufferedReader(isr);
//Escrita e gravao dos caracteres no destino
out.write(buffer, 0, lidos);
out.flush();

Concluso
Desenvolver aplicaes que se comunicam em rede local ou internet
hoje uma necessidade crescente. Neste artigo aprendemos a desenvolver
este tipo de aplicao usando Java e sockets. Os sockets em Java
representam um recurso poderoso para desenvolvimento de aplicaes
que podem comunicar-se via rede. Apesar de existirem frameworks que
facilitam o desenvolvimento de aplicaes em rede com Java
importante ao leitor entender o fundamento da comunicao com sockets
que a base para toda e qualquer aplicao que utiliza comunicao em
rede.

Potrebbero piacerti anche