Você está na página 1de 17

Java Standard Edition (JSE)

15. Sockets
1
Esp. Mrcio Palheta
Gtalk: marcio.palheta@gmail.com
Agenda
Protocolo de comunicao;
Porta de acesso;
Socket;
2
Socket;
Servidor de transaes;
Cliente;
Exerccios;
A API e os conceitos
Neste captulo, estudaremos a API de
Sockets do pacote java.net;
Perceba que estamos colocando em
3
Perceba que estamos colocando em
prtica todos os conceitos a cerca
bibliotecas e interfaces, que
aprendemos nesse curso;
Fica mais fcil avanar na API, uma vez
que a base est slida;
Protocolos
A fim de garantir a comunicao entre
estaes remotamente dispostas,
definiu-se conjuntos de regras, ditos
Protocolos;
4
Protocolos;
O protocolo que usaremos o
Transmission Control Protocol TCP;
Como o TCP, podemos estabelecer um
fluxo de dados entre estaes distintas;
Fluxo de dados TCP
5
Sobre a conexo
Podemos conectar mais de um cliente a
um servidor;
Os clientes podem trocar mensagens
usando o servidor;
6
usando o servidor;
Para trabalhar com comunicao de
dados, o java oferece as classes do
pacote java.net;
O TCP vai garantir a entrega dos nossos
pacotes de dados;
Porta de acesso
comum que vrias aplicaes locais
troquem dados com outras do Servidor;
Mas temos apenas uma conexo fsica;
7
Mas temos apenas uma conexo fsica;
Assim como h IP para identificar CPU,
a porta a soluo para acesso a
aplicaes de uma mquina;
A porta varia de 0 a 65535. S
possvel conexo se uma porta estiver
liberada;
Socket
Digamos que um cliente se conecta a um
programa rodando na porta 80(http);
Precisamos esperar que ele desconecte
para conectarmos outro cliente?
8
para conectarmos outro cliente?
Aps aceitar a conexo, o servidor
redireciona o cliente para outra porta;
Dessa forma, a porta 80 fica liberada,
aguardando outra conexo;
Em java, usamos threads para a troca;
Aplicao servidora
Aceita conexo e dados de aplicaes
clientes;
O servidor deve abrir uma porta e ficar
9
O servidor deve abrir uma porta e ficar
escutando por uma conexo cliente;
Aps a conexo, o servidor aceita dados
(Streams) enviados pelo cliente;
Por fim, necessrio fechar as
conexes;
Exerccio 01 Servidor.java
10
Exerccio 02 Cliente.java
11
Consideraes
O que aconteceu nos exerccios
anteriores?
Foram criados um Servidor e um Cliente
O cliente envia objetos String para o
12
O cliente envia objetos String para o
servidor;
O servidor interpreta(imprime) os
objetos recebidos;
A classe String implementa a interface
Serializable;
Exerccio 03
Crie a classe Mensagem.java
13
Exerccio 04
Atualize o cdigo das classes Cliente e
Servidor, para implementar a troca de
objetos Mensagem, ao invs de objetos
14
objetos Mensagem, ao invs de objetos
String;
Bibliografia
Java - Como programar, de Harvey M.
Deitel
Use a cabea! - Java, de Bert Bates e
15
Use a cabea! - Java, de Bert Bates e
Kathy Sierra
(Avanado) Effective Java
Programming Language Guide, de Josh
Bloch
Referncias WEB
SUN: www.java.sun.com
Threads:
http://download.oracle.com/javase/tutorial
/essential/concurrency/
Fruns e listas:
16
Fruns e listas:
Javaranch: www.javaranch.com
GUJ: www.guj.com.br
Apostilas:
Argonavis: www.argonavis.com.br
Caelum: www.caelum.com.br
Java Standard Edition (JSE)
15. Sockets
17
Esp. Mrcio Palheta
Gtalk: marcio.palheta@gmail.com

Você também pode gostar