Programação com sockets (em Java)



Documentos relacionados
Sistemas Operacionais:

socket Objetivo: aprender a construir aplicações cliente/servidor que se comunicam usando sockets

Programação Paralela e Distribuída. Prof. Cidcley T. de Souza

Cliente-servidor com Sockets TCP

Sockets. Bruno Guimarães Lucas Rossini

Sockets em Java. Leonardo R. Nunes - leonardo@sumersoft.com. 1. Introdução. 2. Sockets TCP/IP

Programação de Sockets

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Programação de sockets com TCP

Programação em Rede Baseada em Java. Luiz Affonso Guedes Tópicos em Redes de Computadores Programação Distribuída

Capítulo II Modelos de Programação Distribuída

INF1013 MODELAGEM DE SOFTWARE

Mecanismos de Comunicação. Sockets em java (

Aula 30 - Sockets em Java

Comunicação entre processos

Implementando comunicação em JAVA via Sockets. Alcides Calsavara - alcides@ppgia.pucpr.br Leonardo R. Nunes - leonardo@sumersoft.

Programando sistemas distribuídos com objetos distribuídos na rede TCP/IP. Prof. Me. Sérgio Carlos Portari Júnior

Computação Distribuída

Java 2 Standard Edition Fundamentos de

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Programação de Sockets

Sistemas Distribuídos

Programação de Sockets em C/C++

Passagem de Mensagens

Sistemas Distribuídos. Prof. Ricardo Ribeiro dos Santos

Sistemas Distribuídos Java Sockets

Comunicação via Sockets. Prof. Orlando Loques - IC/UFF. versão

Sistemas Distribuídos Capítulos 2 e 3: Modelos, Arquitecturas e Revisão de Redes

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Comunicação entre Processos

Redes de Computadores II. Programação com Sockets em Python

Redes de Computadores Programação com Sockets

Redes de Computadores I

INF01018 Aula Prática 1 Cliente-Servidor e Multicast

Sistemas Distribuídos

Sistemas Distribuídos

Programação com Sockets

Aula Prática. Comunicação em SOCKTS. Disciplina: INF01151

Sockets com Java Parte I

Orientação a Objetos

Cliente-servidor com Sockets TCP

sockets interprocess communication Taisy Weber

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Um pouco do Java. Prof. Eduardo

Redes de Computadores e Aplicações

Invocação de Métodos Remotos

Sistemas Distribuídos. Coulouris Capítulo 4

MÓDULO 8 Modelo de Referência TCP/IP

Redes de Computadores

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Java : Comunicação Cliente-Servidor.

Sistemas Distribuídos

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Olho por olho, e o mundo acabará cego. Mohandas Gandhi

Comunicação em Sistemas Distribuídos

Programação com Sockets TCP e UDP - Cliente. Gustavo Leitão

FTP FILE F TRANSFER PROTOCOL. Tópicos

Redes de Computadores. Arquitetura de Protocolos Profa. Priscila Solís Barreto

User Datagram Protocol

Redes de Computadores (PPGI/UFRJ)

Engenharia Elétrica Eletrônica Slides 20: TCP/IP em Winsocks 2. API do Windows para programar utilizando o protocolo TCP/IP Prof. Jean Marcelo SIMÃO

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Aula 2 Arquitetura de Redes. Prof. Dr. S. Motoyama

Sistemas Operacionais - Básico e Avançado - Prof. Celso Maciel da Costa Mestrado em Informática - PUCRS

Threads e Sockets em Java. Threads em Java. Programas e Processos

Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Sistemas Distribuídos

Adriano Reine Bueno Rafael Barros Silva

Redes de Computadores

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

UMA ABORDAGEM SOBRE A INTERFACE DE PROGRAMAÇÃO DE APLICAÇÕES SOCKETS E A IMPLEMENTAÇÃO DE UM SERVIDOR HTTP

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.


Modelo Cliente/Servidor e Introdução a Sockets

SISTEMAS DISTRIBUÍDOS

Bibliotecas. Apoio à Programação Distribuída. Socket. Socket. bibliotecas bibliotecas+ferramentas linguagens de programação distribuídas

TROCA DE MENSAGENS SOCKETS. Comunicando processos através de SOCKETS. SOCKETS com conexão. SOCKETS sem conexão

Sockets. Introdução. Introdução. Programando para redes em Java. mecanismo de alto nível para acessar recursos na Internet.

Caso 1 NetScanner Main

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Sockets e Threads em Java

Sistemas de Operação Sockets

Prof. Marcelo Cunha Parte 5

UNIVERSIDADE. Sistemas Distribuídos

Manual do Desenvolvedor Criptografia de Arquivos do WebTA

Rede de Computadores II

REDES DE COMPUTADORES

Programação: Sockets em Java

Introdução à Programação Sockets. Programação Sockets. (c) Volnys Bernal. Agenda. Introdução à Programação Sockets

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar

Sockets - Conceitos Básicos. COMUNICAÇÃO ENTRE PROCESSOS Sockets. Conceitos Básicos. Tipos de Sockets

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Transcrição:

com sockets (em Java) Prof. Dr. Julio Arakaki Depto. Ciência da 1 Comunicação entre processos // aplicações - é um dos mecanismos mais utilizados - Java oferece modos de utilização:. TCP ( Transmission Control Protocol ) orientado a conexão. UDP ( User Datagram Protocol ) orientado a datagrama. Entre outros Funcionam sobre o protocolo IP ( Internet Protocol ) 2 1

Principais protocolos (Rede/Internet) Camadas HTTP FTP DNS RPC... Aplicação Usuários TCP UDP Transporte SOs ICMP IP IGMP Rede Hardware Enlace 3 Identificação na na rede 20345 20348 TCP 15398 10340 UDP 6970 protocolo = 6 protocolo = 17 Internet ssh.cin.ufpe.br 150.161.2.106 procololo = 6 = 22 host-0-13.re.apartnet.br.inter.net 200.199.75.13 www.uol.com.br 200.221.8.18 procololo = 6 = 80 www.bbc.co.uk 212.58.224.61 protocolo = 17 = 44585 servidor DNS 200.185.56.49 protocol = 17 = 53 4 2

(em Rede/Internet) Sockets envia/recebe (send/receive) Característica: eficiência RPC ( Remote Procedure Call ) Chamada remota de procedimento Característica: transparência e facilidade de programação Objetos distribuídos Características: transparência, facilidade e todos os benefícios da programação orientada a objetos, execução mais lenta Exemplos: DCOM, CORBA, Java RMI, EJB, Servlets, Frameworks (Struts, Spring,...), Web Services, etc. 5 Sockets BSD Unix Interface padrão para comunicação entre processos em redes TCP/IP Implementação no SO: Unix de Berkeley A maioria dos SOs implementam os sockets Programar com sockets pode ser visto como: Desenvolver um protocolo de Comunicação 6 3

Serviço com conexão Principais tipos de de sockets Implementa um stream de dados (SOCK_STREAM) Protocolo TCP (tipicamente) Serviço sem conexão Implementa um serviço de datagramas (SOCK_DGRAM) Protocolo UDP (tipicamente) Acessa diretamente a camada de rede (SOCK_RAW) Serviço de baixo nível Protocolo IP (tipicamente) 7 socket connect write read close bind listen accept Principais funções da da API de de Sockets Cria um novo descritor para comunicação Iniciar conexão com servidor Escreve dados em uma conexão Lê dados de uma conexão Fecha a conexão Atribui um endereço IP e uma a um socket Coloca o socket em modo passivo, para escutar s Bloqueia o servidor até chegada de requisição de conexão recvfrom Recebe um datagrama e guarda o endereço do emissor sendto Envia um datagrama especificando o endereço 8 4

Server socket () bind () Serviço com conexão (TCP) listen () accept () blocked read () write () close () Conexão Solicitação Resposta Client socket () connect () write () read () close () 9 Serviço sem conexão (UDP) Server socket () Baseado em troca de mensagens (datagrama): [sender.maq1, receiver.maq2, content: mensagem ] bind () recvfrom () blocked Client socket () Solicitação sendto () sendto () close () Resposta recvfrom () close () 10 5

Servidor (estrutura típica) 11 Codificação de de s Codificação (valores/significado/utilização) de de s 1-255 256-1023 1-1023 1024-4999 5000 - reservadas para serviços padrão s bem conhecidas reservado para serviços Unix Somente podem ser usadas por usuários privilegiados (super-usuário) Usadas por processos de sistema e de usuário Usadas somente por processos de usuário 12 6

Sockets em Java Em Java, algumas chamadas (de funções) são automáticas Exemplos: Socket: equivalente a socket e bind ServerSocket: equivalente a socket, bind e listen Sockets são implementados no pacote java.net O envio e a recepção dos dados são realizados através de classes do pacote java.io de maneira semelhante à escrita e leitura em arquivos DataInputStream, DataOutputStream, etc. 13 Servidor TCP... public static void main(string[] args) { try { ServerSocket s = new ServerSocket(9999); String str; while (true) { Socket c = s.accept(); InputStream i = c.getinputstream(); OutputStream o = c.getoutputstream(); do { byte[] line = new byte[100]; i.read(line); o.write(line); str = new String(line); while (!str.trim().equals("bye") ); c.close(); catch (Exception err){ System.err.println(err);... 14 7

Cliente TCP public static void main(string[] args) { try { Socket s = new Socket("127.0.0.1", 9999); InputStream i = s.getinputstream(); OutputStream o = s.getoutputstream(); String str; do { byte[] line = new byte[100]; System.in.read(line); o.write(line); i.read(line); str = new String(line); System.out.println(str.trim()); while (!str.trim().equals("bye") ); s.close(); catch (Exception err) { System.err.println(err); 15 Servidor UDP import java.net.*; import java.util.*; class ServidorUDP { public static void main( String args[] ) throws Exception { DatagramSocket socket = new DatagramSocket(7); DatagramPacket packet = new DatagramPacket(new byte[512],512); while ( true ) { socket.receive( packet ); System.out.println( ""+new Date()+""+packet.getAddress()+ ":"+packet.getport()+" mensagem = "+ new String(packet.getData(),0,packet.getLength()) ); socket.send( packet ); 16 8

import java.net.*; import java.util.*; class ClienteUDP { Cliente UDP public static void main( String args[] ) throws Exception { DatagramSocket socket = new DatagramSocket(); socket.setsotimeout( 5000 ); String mens = "12314315145125231523535"; byte[] buffer = mens.getbytes(); DatagramPacket packet = new DatagramPacket( buffer,buffer.length,inetaddress.getbyname("localhost"),7); socket.send( packet ); Date timesent = new Date(); socket.receive( packet ); Date timereceived = new Date(); System.out.println( ""+ (timereceived.gettime()-timesent.gettime())+" ms "+ new String(packet.getData(),0,packet.getLength()) ); 17 9