Implementando comunicação em JAVA via Sockets Alcides Calsavara - Leonardo R. Nunes -

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais II N Aula prática Java Sockets, RPC e RMI Eduardo Bezerra.
Advertisements

E/S Síncrona x E/S Assíncrona no sistema Unix
Interações cliente/servidor usando o UDP
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
NetBIOS Network Basic Input Output System.
Comunicação entre processos distribuídos
Bruno Rafael de Oliveira Rodrigues
Ir p/ primeira página Cliente/Servidor Modelo usado para construir aplicações Servidor em número de porta conhecido – Aceita requisições e executa serviços.
URL: Redes Prof. Edgard Jamhour URL:
Comunicação Distribuída
O conceito de socket Uma comunicação entre dois processos via TCP (ou UDP) é identificada unívocamente por dois pares de valores, que denotam os dois pontos.
Redes de computadores Prof. Nelson Fonseca 2: Camada de Aplicação.
Capítulo 2: Roteiro 2.1 Princípios dos protocolos da camada de aplicação 2.2 Web e HTTP 2.3 FTP 2.4 Correio Eletrônico SMTP, POP3, IMAP 2.5 DNS 2.6 Compartilhamento.
Streams Java.
Sistemas Paralelos e Distribuídos
Conceitos de Sockets Universidade Federal do Rio Grande do Sul (UFRGS)
Desenvolvimento de Aplicações Distribuídas
26/09/2005 LCMI - DAS - UFSC 1 Introdução aos Sockets Java Fábio Favarim DAS – Departamento de Automação e Sistemas UFSC – Universidade.
1 Introdução aos Sockets (Java) Tiago Semprebom DAS – Departamento de Automação e Sistemas UFSC – Universidade Federal de Santa Catarina.
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI Sockets Abril, 98Isidro Vila Verde 1 Formato das estruturas de dados Estrutura.
Camada de Transporte: Portas, Sockets, Aplicações em Rede
Introdução à Programação Distribuída em Java
Escola Secundária Filipa de Vilhena Ano Lectivo 2010/ Turma IGR1
Capítulo 2 Camada de aplicação
Anália Lima (alc5) Bruno Gentilini (bgda) Eduardo Souza (efs) Ivan França (ilfn) Infra-Estrutura de comunicação Aula Prática Programação de Sockets TCP.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Denyson José Eduardo Souza Ivan França Rafael Lima.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
G ENERIC C ONNECTION F RAMEWORK Prof. André Assad
Streams –input e output
Programação com sockets
Programação de Sistemas de Comunicação
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.
Comunicação Entre Processos Sockets - Java
Camada de Transporte prof. Eduardo.
Nível Transporte Fornece aos níveis superiores serviço eficiente e confiável entre máquina de origem e destino, independente das redes utilizadas. Torna.
Java e Serviço de Transporte Vitor Brandi Junior.
NetBIOS Acadêmicos: Rubens Hiroshi Suzuqui Valmir Ferreira Marques
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Infra-Estrutura de Comunicação (IF678) Aula Prática CIn/UFPE Rafael Lucena Roberta Mota Rubens Lopes Rodolfo Santos João Pedro Cordeiro.
Programando sockets em python
Programação distribuída e concorrente
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
IIS Web Server.
MODELO DE REFERÊNCIA TCP/IP
Desenvolvimento de Aplicações TCP/IP com Sockets Márcio de Sousa Dias
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Hugo Simões Original por: Flávio.
Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
Capítulo 4: Processos.
Socket em Java.
Comunicação Cliente-Servidor Linguagem para Internet II Prof. Marcelo da Silveira Siedler SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL.
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP CIn/UFPE Bruno Gentilini Eduardo Souza Amora Albuquerque Anália.
Java – Remote Method Invocation (RMI)
Programação Distribuída em Java Aula Na aula passada vimos: I/O Streams Filtros Readers and Writers.
Programação Distribuída em Java Aula Na aula passada vimos: I/O Sockets.
Programação Distribuída em Java Aula Na aula passada vimos Domain Name Server –Funcionamento básico O pacote java.net –Sua finalidade A classe InetAddress.
Camada de Aplicação Prof. Horácio. Objetivo Apresentar os detalhes específicos dos tipos de aplicação; Apresentar o modelo cliente-servidor; Apresentar.
Passagens de Mensagens Prof. Dr. Norian Marranghello
Administração e Projeto de Redes Material de apoio Camada de Transporte Cap.4 10/02/2010.
Redes de computadores e a Internet
Infra-Estrutura de Comunicação (IF678) Aula Prática 02 Programação de Sockets TCP e UDP Professor: Paulo Gonçalves CIn/UFPE.
Protocolos de Comunicação e Passagem de Mensagens
Sockets Redes de Comunicação de Dados Prof. Esp. Cristiano José Cecanho.
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Programação em Java Sockets Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Transcrição da apresentação:

Implementando comunicação em JAVA via Sockets Alcides Calsavara - Leonardo R. Nunes -

Sockets ● Utilizado para comunicação entre processos; ● Compreendendo Sockets - diagramas: – sockets.pdf – socketsgeral.pdf

Sockets ● Mecanismo básico de comunicação sobre IP ● Fornece três modos de acesso: – Modo orientado a conexão (connection-oriented): ● Socket, ServerSocket; – Modo orientado a datagrama (datagram-oriented): ● DatagramSocket, MulticastSocket; – Acesso a dados IP de baixo nível (raw ip data): ● SocketImpl

Modo orientado a conexão (connection-oriented) ● Funciona sobre o protocolo TCP/IP ● Serviços confiáveis: – Sem perdas de dados na rede; – Garantia de ordem dos pacotes; ● “Data streams” podem ser utilizados ● Desvantagens: – É mais lento que o modo orientado a datagrama; – Comportamento servidor diferente do comportamento cliente;

Ações para implementar um socket cliente 1 - Abrir a conexão: import java.io.* ; // streams import java.net.* ; // sockets Socket clientSocket = new Socket (“ 80);

Ações para implementar um socket cliente 2 - Pegando os streams de entrada e saída: DataInputStream inbound = new DataInputStream ( clientSocket.getInputStream( ) ); DataOutputStream outbound = new DataOutputStream ( clientSocket.getOutputStream( ) );

Ações para implementar um socket cliente 3 - Utilizando os streams de entrada e saída: outbound.writeInt( 3 ); outbound.writeUTF( “Hello” ); int k = inbound.readInt( ); String s = inbound.readUTF() ;

Ações para implementar um socket cliente 4 – Fechando os streams de entrada e saída: inbound.close () ; outbound.close () ; 5 – Fechando o socket: clientSocket.close() ;

Ações para implementar um socket servidor 1 - Criar o server socket: ServerSocket serverSocket = new ServerSocket (80, 5); 2 - Aguardar conexoes de clientes: Socket clientSocket = serverSocket.accept ();

Ações para implementar um socket servidor 3 - Criar streams de entrada e saída do cliente: DataInputStream inbound = new DataInputStream ( clientSocket.getInputStream( ) ) ; DataOutputStream outbound = new DataOutputStream ( clientSocket.getOutputStream( ) ) ;

Ações para implementar um socket servidor 4 - Conversando com o cliente: int k = inbound.readInt( ); String s = inbound.readUTF() ; outbound.writeInt( 3 ); outbound.writeUTF( “Hello” );

Ações para implementar um socket servidor 5 - Fechando streams e socket cliente: inbound.close () ; outbound.close () ; clientSocket.close() ; 6 - Fechando o socket servidor: serverSocket.close() ;

Modo orientado a conexão - features ● Possibilidade de sockets unidirecional: – socket.shutdownInput(); – socket.shutdownOutput(); ● Implementações de alto nível para protocolos como http, etc...

Modo orientado a datagrama (datagram-oriented) ● Funciona sobre o protocolo UDP/IP ● Serviços não confiáveis: – Mensagens podem ser perdidas; – Ordem das mensagens não garantida; ● Cada mensagem é um datagrama: – [sender, receiver, contents] ● Vantagem: – É muito mais rápido que o modo orientado a conexão;

Utilizando datagramas (sender side) 1 - Criação do socket cliente: // sender socket doesn’t need // a special port number DatagramSocket clientSocket = new DatagramSocket () ;

Utilizando datagramas (sender side) 2 - Criando e enviando o datagrama: InetAddress addr=InetAddress.getByName (“ ; String toSend = “That’s my question!” ; byte[] buffer = toSend.getBytes() ; // datagram to receiver’s port 4545 DatagramPacket question = new DatagramPacket (buffer, buffer.length, addr, 4545) ; clientSocket.send (question) ;

Utilizando datagramas (sender side) 3 - Recebendo e abrindo uma resposta: DatagramPacket answer = new DatagramPacket (new byte[512], 512); clientSocket.receive (answer) ; System.out.println (answer.getData() + “\n” + answer.getLength() + “\n” + answer.getAddress() + “\n” + answer.getPort() ) ;

Utilizando datagramas (sender side) 4 - Fechando o socket clientSocket.close() ;

Utilizando datagramas (receiver side) 1 - Criando um socket servidor: // listens on port 4545 DatagramSocket serverSocket = new DatagramSocket (4545) ;

Utilizando datagramas (receiver side) 2 - Recebendo um datagrama: DatagramPacket question = new DatagramPacket (new byte[512], 512) ; serverSocket.receive (question) ;

Utilizando datagramas (receiver side) 3 - Enviando o datagrama resposta: String toSend = “That’s the answer !” ; byte[] buffer = toSend.getBytes() ; DatagramPacket answer = new DatagramPacket (buffer, buffer.length, question.getAddress()/*sender info*/, question.getPort()/*sender info*/); serverSocket.send (answer) ;

Utilizando datagramas (receiver side) 4 - Fechando o socket servidor: serverSocket.close() ;

Modo orientado a datagama – Multicast ● Um grupo “Multicast” é especificado por um endereço IP de classe “D” ( até , inclusive) e uma porta UDP. ● O endereço é reservado e não deve ser usado. ● MulticastSocket: InetAddress group = InetAddress.getByName(" "); MulticastSocket s = new MulticastSocket(6789); s.joinGroup(group); // Envia e recebe mensagens. s.leaveGroup(group);

Sockets sobre IP - TCP e UDP ● Algumas configurações: – Timeout do Sistema Operacional; – Utilização de buffers; – KeepAlive; – etc...

Acesso a dados IP de baixo nível ● Java possibilita acesso a algumas configurações ip, mas não permite raw sockets. – SocketImplFactory – SocketImpl – SocketOptions

Principais novidades do J2SE v1.4 ● Suporte à IPv6 ● SocketChannel – Stream-oriented connecting sockets. – Operações assíncronas – Maior controle de execução e recursos (possibilidade de accept não bloqueante) ● Suporte a Secure Socket Layer ● Maiores detalhes: – %JAVA_HOME%/docs/guide/net/enhancements14.html