programação em rede baseada em javaaffonso/dca2401/2004_1/pdf/redes.pdfdefiniçõs básicas •...
TRANSCRIPT
![Page 1: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/1.jpg)
Programação em RedeBaseada em Java
Luiz Affonso GuedesTópicos em Redes de
Computadores – ProgramaçãoDistribuída
www.dca.ufrn.br/~affonso/cursos
![Page 2: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/2.jpg)
Definiçõs Básicas• Uma rede é um conjunto de computadores e
outros dispositivos interligados por um meiofísico.– Estes podem enviar e receber dados entre si, mais
ou menos em tempo real.• Redes de Pacotes
– O canal de comunicação é compartilhado entre osdiversos computadores.
– Os computadores de reversam na utilização do canal, enviando mensagens: pacotes.
![Page 3: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/3.jpg)
Camadas de uma Redes
Camada de Interface de Rede (Ethernet, FDDI, ATM)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Programas deAplicacao
Programas deAplicacao
Maquina 1 Maquina 2
![Page 4: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/4.jpg)
Encapsulação de Dados
Camada de Interface de Rede (Ethernet, FDDI, ATM)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Programas deAplicacao
![Page 5: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/5.jpg)
Encapsulação de Dados
Camada de Interface de Rede (Ethernet, FDDI, ATM)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Programas deAplicacao
![Page 6: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/6.jpg)
Camada de Interface de Rede(Ethernet, FDDI, ATM)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Camada de Rede (IP)
Camada de Transporte(TCP ou UDP)
Camada de Aplicacao(DNS, HTTP,FTP, …)
Programas deAplicacao
Programas deAplicacao
Camada de Interface de Rede(Ethernet, FDDI, ATM)
Roteador
Roteamento de Pacotes
![Page 7: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/7.jpg)
Camada de Rede
• Protocolos IP (Internet Protocol)– Responsável pelo roteamento dos pacotes
entre as sub-redes.– Numeração IP:
• 04 bytes.• 05 Classes de números: A, B, C, D, E.• Cada interface de rede tem de ter pelo menos um
endereco IP.• 127.0.0.1 endereço de loop-back (localhost)
![Page 8: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/8.jpg)
Formato do Pacote IP0 04 08 12 16 20 24 28 31
versão
Tamanho cabeçalho
Tipo de serviço
Tamanho do pacote
Identificação
Flags
Offset/frag
TTL
Protocolo
Checksum/cab.
End. fonte
End. destino
Opções
Dados
![Page 9: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/9.jpg)
Formato do Pacote IP
• Campo Versão:– Atualmente versão quatro: 4– IPv6 (Versao 6): 6
• Campo PROTOCOLO:– Protocolo TCP: 6– Protocolo UDP: 17
• Campos TTL – Time To Live e Offset/Flags: – Únicos campos que são alterados durante o percurso
de roteamento dos pacotes
![Page 10: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/10.jpg)
Camada de Transporte
• Responsável pela comunição fim-a-fim.• TCP – Transmission Control Protocol
– Protocolo com orientação de conexão e garantia de entrega de mensagem.
• UDP – User Datagram Protocol– Protocolo sem orientação de conexão e sem
garantia de entrega de mensagem.
![Page 11: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/11.jpg)
Formato da Mensagem TCP0 04 08 12 16 20 24 28 31
Numero da Porta Fonte Numero da Porta Destino
Numero de Sequencia da Mensagem
![Page 12: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/12.jpg)
Camada de Transporte
• Conceito de serviço– Servicos estão associados com portas.– Portas são números inteiros representados
por 02 bytes:• 65.536 portas possíveis• As portas de 1 a 1023 são destinadas a servicos
especificos.
![Page 13: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/13.jpg)
Comunicação num Host
Portas de serviços 6533625 802321
Camada de Transporte
Camadade Rede
Protocolo TCP Protocolo UDP
Protocolo IP
07
Interface deProgramação API Sockets
Camada deAplicação
echo
FTP
Telnet
SMTP
HTTPProg.1 Prog.N
![Page 14: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/14.jpg)
Protocolo da Camada de Aplicação
Converter nomede máquina emnúmero e vice-
versa
TCP ouUDP
23 (?)DNS
Transferência de e-mails
acumulados no servidor para um
cliente
TCP110POP3
Envio de e-mail para servidor de
TCP25SMTP
Transferênciade hipertextos
TCP80HTTP
Transferênciade arquivos
TCP20 e 21FTP
PropositoProtocolo de Transporte
PortaProtocolo
![Page 15: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/15.jpg)
Exemplo de Comunicação com um Servidor DNS
ServidorDNS
Porta 23
www.uol.com.br
232.212.091.28Um Cliente
Porta 13.290
www.uol.com.br
232.212.091.28
![Page 16: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/16.jpg)
Exemplo de Comunicação com um Servidor WEB
ServidorWeb
Porta 80
Um Cliente(Browser)
Porta 13.290
Cliente solicita página
Servidor envia página
Arquivos de Páginas(HTML)Netscape 6.lnk
Click de um linkPega arquivo Envia
arquivoNova Página
![Page 17: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/17.jpg)
325425 802321
Protocolo TCP Protocolo UDP
Protocolo IP
07API Sockets
HTTP
Netscape 6.lnk
325425 802321
Protocolo TCP Protocolo UDP
Protocolo IP
07API Sockets
HTTPApache
internet
Interface de REDE Interface de REDE
LADO CLIENTE LADO SERVIDOR
![Page 18: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/18.jpg)
Socket TCP
Cliente Servidor
Cria SocketCria Socket
Bind
Listen
Connect Accept
Close Close
Troca de Mensagens
![Page 19: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/19.jpg)
Socket UDPCliente Servidor
Cria SocketCria Socket
Bind
Listen
Troca de Mensagens
![Page 20: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/20.jpg)
Sockets em Java
• Classes– Socket– ServerSocket
• Enviam objetos da Classe OutputStream• Recebem objetos da Classe InputStream
![Page 21: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/21.jpg)
Sockets em Java
Porta Porta
ServidorCliente
ServerSocket
SocketSocket
ObjectOutputStream
ObjectInputStream
ObjectInputStream
ObjectOutputStream
![Page 22: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/22.jpg)
Exemplo 1: Cria Sockets
– Um programa que faz o scan das portasbaixas (1 até 1023).
– Apenas o lado Cliente.– Socket s = new Socket(String host, int porta)
throws IOException, UnknowHostException;
– host = “localhost”; // comunicacao local
![Page 23: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/23.jpg)
Exemplo2: Utilizando o serviço de nome
• DNS: Domain Name Server– Classe InetAddress
• Pacote java.net.InetAddress• Possui o endereço Internet armazenado em dois
formatos:– Nome em String e Numero em int
• Métodos– public static InetAddress.getByName(String
hostName)Throws UnknowHostException
– public static InetAddress.getLocalHost( )Throws UnknowHostException
![Page 24: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/24.jpg)
Exemplo2: Utilizando o serviço de nome
– Classe InetAddress• Métodos
–public String getHostName( );–public byte[ ] getAddress( );–public String getHostAddress ( );
![Page 25: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/25.jpg)
Exemplo3:
– Um programa que faz o scan das portasbaixas (1 até 1023)
– Socket s = new Socket(InetAddres host, int porta)
throws IOException,UnknowHostException;
![Page 26: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/26.jpg)
Exemplo4public Socket(String host, int port, InetAddres interface,
int portaLocal) throws IOException
public Socket(InetAddress host, int port, InetAddres interface, int portaLocal) throws IOException
![Page 27: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/27.jpg)
Exemplo4 - Métodos de informação
– public InetAddress getInetAddress( )-----------------------------------------------------------------------------try {
Socket umSocket = new Socket(“java.sun.com”, 80);InetAddress endereco = umSocket.getInetAddress( );System.out.println(“Conectado à máquina “ + endereco);
} catch(UnknownHostException e) {System.err.println(e);
}catch(IOException e) {
System.err.println(e);}----------------------------------------------------------------------------------
Método que obtém o InetAddress remotode onde o Socket está conectado
![Page 28: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/28.jpg)
Exemplo4 - Métodos de informação
– public int getPort( )-----------------------------------------------------------------------------try {
Socket umSocket = newSocket(“java.sun.com”, 80);int porta = umSocket.getPort( );System.out.println(“Conectado à porta “ + porta);
} catch(UnknownHostException e) {System.err.println(e);
}catch(IOException e) {
System.err.println(e);}----------------------------------------------------------------------------------
Método que obtém a porta remota de onde o Socket esté conectado
![Page 29: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/29.jpg)
Exemplo4 - Métodos de informação
– public int getLocalPort( )-----------------------------------------------------------------------------try {
Socket umSocket = newSocket(“java.sun.com”, 80);int porta = umSocket.getLocalPort( );System.out.println(“Conectado a partir da porta “ + porta);
} catch(UnknownHostException e) {System.err.println(e);
}catch(IOException e) {
System.err.println(e);}----------------------------------------------------------------------------------
Método que obtém a porta LOCAL poronde o Socket está conectado
![Page 30: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/30.jpg)
Exemplo4 - Métodos de informaçãoMétodo que obtém o InetAddress LOCALpor onde o Socket está conectado
– public InetAddress getLocalAddress( )-----------------------------------------------------------------------------try {
Socket umSocket = newSocket(“java.sun.com”, 80);InetAddress enderecoLocal = umSocket.getInetAddress( );System.out.println(“Conectado a partir da maquina “ + enderecoLocal);
} catch(UnknownHostException e) {System.err.println(e);
}catch(IOException e) {
System.err.println(e);}----------------------------------------------------------------------------------
![Page 31: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/31.jpg)
Exemplo5
• Exemplo de um programa cliente que acessaum servidor de tempo remoto– Porta 13– java GetTime <nome_do_host>– Utiliza o método getInputStream da classe Socket
• public InputStream getInputStream( ) throws IOException
– Retorna um fluxo de entrada, de modo a se poder ler dados a partir do Socket.
![Page 32: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/32.jpg)
Fechamento do Socket• Método close( )
– Public synchonized void close ( )throws IOExcepition
Socket conexao = null;try {Socket conexao = new Socket(www.ufrn.br,1333);// codigo que vai interagir com o socket
}catch (UnknownHostException e) { }catch(IOException e) { }finally {
if(conexao !=null) conexao.close( );}
![Page 33: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/33.jpg)
Exemplo6
• Programa exemplificando a utilização do método de fechamento de socket, com seu tratamento de exceção.
![Page 34: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/34.jpg)
Servidor Socket
• Utiliza um objeto da classe ServerSocket– Método de escuta de porta (listen).– Método que aceita uma conexão.– Método que retorna um objeto tipo Socket
quando uma conexão é efetuada.
![Page 35: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/35.jpg)
Seqüência típica de uma aplicaçãoCliente-Servidor em Java
Porta do Cliente Porta do Servidor
ServidorCliente
ServerSocket SocketSocket
ObjectInputStreamObjectInputStreamObjectOutputStream
InputStreamOutputStream
ObjectOutputStream
OutputStream InputStream
readObject readObjectwriteObject
writeObject
accept( )
![Page 36: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/36.jpg)
Ciclo de Vida de um Servidor1. Um novo ServerSocket é criado.2. Ele fica escutando uma porta: accept().3. Após aceitar uma conexão, accept() retorna
um objeto do tipo Socket.4. O objeto tipo Socket utiliza os métodos
getInputStream() e getOutputStream() parareceber e enviar dados, respectivamente.
5. Cliente e Servidor fecham a conexão.6. O Servidor (ServerSocket) retorna ao passo 1.
![Page 37: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/37.jpg)
Rede de Petri do Ciclo de Vida de um Servidor
![Page 38: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/38.jpg)
Construtores do ServerSocket
• public ServerSocket (int porta)throws IOException,BindException
• public ServerSocket (int porta, int fila)throws IOException,BindException
• public ServerSocket (int porta, int fila, InetAddress clientAddress)
throws IOException,BindException
![Page 39: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/39.jpg)
Aceite de Conexão• public Socket accept throws IOException
ServerSocket server = new ServerSocket(2666);while (true) {
Socket conexao = server.accept( ); // aguarda conexaoOutputStreamWriter saida
= new OutputStreamWriter(conexao.getOutputStream);saida.write(“Mensagem para o cliente\n”);conexao.close();
}
![Page 40: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/40.jpg)
Exemplo7
• Servidor1.java e Cliente1.java– Servidor envia um String para Cliente, dando
boas-vindas.
![Page 41: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/41.jpg)
Socket UDP
![Page 42: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/42.jpg)
Comunicação Multicast
• Tipos de comunicação:– Unicast– Multicast– Broadcast
• Por que utilizar comunicação multicast?
![Page 43: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/43.jpg)
Roteamento de Grupo• Protocolo IGMP• TTL – Time To Live
– Máximo número de roteadores que o datagramapoderá ser roteado
– TTL = 0 Localhost– TTL = 1 Rede Local
• Necessidade de ser transparente para o programador da aplicação– A aplicação deve enviar pacotes para o endereço
multicast.– TCP ou UDP ???
![Page 44: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/44.jpg)
• Conceito de GRUPO: – conjunto de hosts que compartilham um mesmo
endereço multicast.– todo dado enviado para um endereço multicast é
recebido por todo os membros do grupo.– membros se associam-se e desligam-se do grupo de
forma autônoma.
• Endereçamento Multicast– Endereço do grupo– Classe D: 224.0.0.0 – 239.255.255.255
![Page 45: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/45.jpg)
Endereços Multicast
• 224.0.0.0 – Endereço reservado.• 224.0.0.1 - Grupo de todos os sistemas
que suportam multicast na rede local.• 224.0.1.1 – Network Time Protocol.• 224.0..1.32 – Versão multicast do
traceroute.• 224.2.0.0 a 224.2.255.255 – MBONE
(Multicast Backbone on the Internet)
![Page 46: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/46.jpg)
Sockets Multicast
![Page 47: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/47.jpg)
Classe Socket Multicast
• java.net.MulticastSocket– Subclasse de: java.net.DatagramSocket
– public class MulticastSocket extendsDatagramSocket throws SocketException
– MulticastSocket socket = new MulticastSocket();– MulticastSocket socket = new MulticastSocket(int porta);
![Page 48: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/48.jpg)
Estrutura de uma comunicação multicast
1. Criação do Socket2. Associação a um grupo multicast (se for
receber dados)3. Envio/Recebimento de dados para/de
membros do grupo4. Desligamento do grupomulticast5. Fechamento do Socket
![Page 49: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/49.jpg)
• Associação a um grupo multicast– public void joinGroup(InetAddres endereco)
throws IOException• Desligamento de um grupo multicast
– public void leaveGroup(InetAddres endereco) throws IOException
• Envio de dados– public void send(DatagramPacket pacote, byte ttl)
throws IOException• Recebimento de dados
– public void receive(DatagramPacket pacote) throws IOException
![Page 50: Programação em Rede Baseada em Javaaffonso/DCA2401/2004_1/pdf/redes.pdfDefiniçõs Básicas • Uma rede é um conjunto de computadores e outros dispositivos interligados por um](https://reader035.vdocuments.pub/reader035/viewer/2022062910/5be5845e09d3f22b448c213f/html5/thumbnails/50.jpg)
Exemplo 9
• Programas Cliente e Servidor Multicast– O programa Cliente envia uma seqüência de
mensagens ao programa Servidor.