10

Click here to load reader

Java recursos avançados - socket connection

Embed Size (px)

Citation preview

Page 1: Java   recursos avançados - socket connection

Curso de Java

by Antonio Rodrigues Carvalho Neto

Page 2: Java   recursos avançados - socket connection

Recursos Avançados

Page 3: Java   recursos avançados - socket connection

Socket Connection

Page 4: Java   recursos avançados - socket connection

Socket Connection

� O Java permite que sejam criados servidores de socket para receber conexões e clientes de socket para se conectar em servidores

Client (10.15.1.53)

Servidor 1 (10.15.1.20)

Servidor 2 (10.15.1.22)

Comunicação via

porta 15678

Page 5: Java   recursos avançados - socket connection

Server

� Etapas para criar um Socket Server1. Iniciar um servidor para escutar conexões em uma

porta específicaSintaxe:ServerSocket <objeto server> = new ServerSocket( <numero da porta>);

Exemplo:ServerSocket server = new ServerSocket(15678);

2. Aguardar a conexão de um cliente nesta portaSintaxe:Socket <objeto que representa o cliente conectado> = <objeto server>.accept();

Exemplo:Socket con = server.accept();

Page 6: Java   recursos avançados - socket connection

Server (cont.)

3. Criar um canal para ler ou gravar dados no cliente através desta conexão

LerInputStream in = con.getInputStream();

int key = 0 ;while (key != 27) {

key = in.read();System.out.println(

(char) key);}

EscreverOutputStream out = con.getOutputStream();

// Cria um filtro de canudo fino para canudo // grosso

OutputStreamWriter ouw = new OutputStreamWriter( out );ouw.write(“Vc se conectou no servidor...”);

4. Fechar o canal e a conexãoout.close();con.close();

Page 7: Java   recursos avançados - socket connection

Client

� Etapas para criar um Socket Client1. Crie uma conexão com o servidor

Sintaxe:Socket <objeto cliente> = new Socket (<server url>, <numero da porta>);

Exemplo:Socket client = new Socket(“10.15.1.20”, 15678);

Page 8: Java   recursos avançados - socket connection

Client (cont.)

2. Criar um canal para ler ou gravar dados no servidor através desta conexão

LerInputStream in = con.getInputStream();

int key = 0 ;while (key != 27) {

key = in.read();System.out.println(

(char) key);}

EscreverOutputStream out = con.getOutputStream();

// Cria um filtro de canudo fino para canudo // grosso

OutputStreamWriter ouw = new OutputStreamWriter( out );ouw.write(“Cliente se conectando no servidor...”);

4. Fechar o canal e a conexãoout.close();con.close();

Page 9: Java   recursos avançados - socket connection

Exercício

� Um hacker invadiu a rede da sua empresa e implantou um vírus que travou todos os equipamentos (Servidores e Desktops). A equipe de segurança conseguiu identificar o programa que está fazendo isso, e descobriu que ele pode ser desativado caso receba a seguinte mensagem pela porta 1110 :

[ATTACK DISABLED][UNLOCK SYSTEM]

� O único equipamento que você tem disponível que não foi afetado é seu BlackBerry, que possui um compilador java e acesso a rede via wireless. Faça um programa que simule um cliente de conexão socket e envie esta mensagem para todos os equipamentos que estiverem no segmento de rede 172.16.168.X.

� Suponha que a rede wireless esteja estabelecida e que os comandos Java do seu Blackberry são os mesmos utilizados no eclipse.

Page 10: Java   recursos avançados - socket connection

Referências

� Java como programar 6ª ediçãoCapítulo 24

pags. 836 a 847

� Use a cabeça Java 2ª ediçãoCapitulo 15

pags. 329 a 341

� Caelum Java e Orientação a ObjetosCapitulo 19

pags. 220 a 227