4. 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
5. Server
Etapas para criar um Socket Server
1. Iniciar um servidor para escutar conexões em uma
porta específica
Sintaxe:
ServerSocket <objeto server> = new ServerSocket(<numero da porta>);
Exemplo:
ServerSocket server = new ServerSocket(15678);
2. Aguardar a conexão de um cliente nesta porta
Sintaxe:
Socket <objeto que representa o cliente conectado> = <objeto server>.accept();
Exemplo:
Socket con = server.accept();
6. Server (cont.)
3. Criar um canal para ler ou gravar dados no
cliente através desta conexão
Ler
InputStream in =
con.getInputStream();
int key = 0 ;
while (key != 27) {
key = in.read();
System.out.println(
(char) key);
}
Escrever
OutputStream 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ão
out.close();
con.close();
7. Client
Etapas para criar um Socket Client
1. 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);
8. Client (cont.)
2. Criar um canal para ler ou gravar dados no
servidor através desta conexão
Ler
InputStream in =
con.getInputStream();
int key = 0 ;
while (key != 27) {
key = in.read();
System.out.println(
(char) key);
}
Escrever
OutputStream 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ão
out.close();
con.close();
9. 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.
10. Referências
Java como programar 6ª edição
Capítulo 24
pags. 836 a 847
Use a cabeça Java 2ª edição
Capitulo 15
pags. 329 a 341
Caelum Java e Orientação a Objetos
Capitulo 19
pags. 220 a 227