SlideShare uma empresa Scribd logo
Socket

Mario Jorge Pereira
mariojp@gmail.com
Pacote java.net
O pacote java.net contém classes para implementar
comunicação através da rede
Fáceis de usar. Semelhante à criação de arquivos:
Socket sock = new Socket("www.x.com", 80);
PrintWriter os = new PrintWriter(new
OutputStreamWriter(sock.getOutputStream()));
BufferedReader is = new BufferedReader(new
InputStreamReader(sock.getInputStream());
os.println("GET / HTTP/1.0nn");
os.flush();
String linha = "";
while ((linha = is.readLine()) != null) {
System.out.println(linha);
} // ... feche o socket com sock.close();
TCP/IP
A comunicação via protocolo TCP (Transfer Control Protocol),
confiável, é suportada pelas classes
Socket (soquete de dados)
ServerSocket (soquete do servidor).
A comunicação via UDP (Unreliable Datagram Protocol),
não-confiável, é suportada pelas classes
DatagramSocket (soquete de dados UDP),
DatagramPacket (pacote UDP)
MulticastSocket (soquete UDP para difusão).
Endereçamento
InetAddress (representa um endereço na Internet)
URL (representa uma URL)
URL
Representa uma URL
Principais métodos
openStream() obtém um InputStream para os dados
openConnection(): retorna um objeto URLConnection que contém
métodos para ler o cabeçalho dos dados
getContent(): retorna os dados diretamente como Object se
conteúdo for conhecido (texto, imagens, etc.)
Para imprimir a página HTML de um site:
try {
URL url = new URL("http://www.site.com");
InputStreamReader reader = new
InputStreamReader(url.openStream());
BufferedReader br = new BufferedReader(reader);
String linha = "";
while ( (linha = br.readLine()) != null) {
System.out.println(linha); }
} catch (MalformedURLException e) { ... }
InetAddress
Representa um endereço Internet

Principais métodos estáticos construtores
getLocalHost() retorna InetAddress
getByName(String host) retorna InetAddress
Principais métodos de instância
getHostAddress() retorna String com IP do
InetAddress
getHostName() retorna String com nome no
InetAddress
Para descobrir o IP e nome da máquina local:
InetAddress address = InetAddress.getLocalHost();
String ip = address.getHostAddress();
String nome = address.getHostName();
Socket
Um dos lados de uma conexão bidirecional TCP
Principais métodos servem para obter fluxos de entrada e
saída
getInputStream()
getOutputStream()
close()
Exemplo:
InetAddress end = InetAddress.getByName("lab21Maq01.fib");
Socket con = new Socket(end, 80);
InputStream dados = con.getInputStream();
OutputStream comandos = con.getOutputStream();

Depois de obtido os fluxos, basta ler ou enviar dados
Socket
Para ler ou gravar caracteres ao invés de bytes, pode-se
decorar os fluxos obtidos de um socket com as classes
Reader e Writer:
Socket con = new Socket("maquina", 4444);
Reader r = new InputStreamReader(con.getInputStream());
Writer w = new
OutputStreamWriter( con.getOutputStream());
// Seu codigo
con.close();
ServerSocket
Com ServerSocket pode-se implementar um servidor que fica
escutando uma porta a espera de um cliente
Principal método
accept(): aceita a conexão e retorna o seu socket
Exemplo de servidor dedicado:
ServerSocket escuta = new ServerSocket(80);
while(true) {
Socket cliente = escuta.accept(); // espera
InputStream comandos = cliente.getInputStream();
OutputStream dados = cliente.getOutputStream();
// ... use os dados
cliente.close();
}
Exercícios
1. Escreva um programa que descubra e imprima o número
IP da sua máquina
2. Escreva um programa que
Conecte-se na porta HTTP (geralmente 80) de um
servidor conhecido
Envie o comando: "GET / HTTP/1.0nn"
Imprima o resultado
3. Servidor dedicado: escreva um servidor simples que
responda ao cliente com um eco do que foi enviado.

Mais conteúdo relacionado

PDF
Prova simulada meio_amb
DOC
Simulado 11
PPTX
Sockets : Introdução
PDF
Labs Jogos Java
PDF
Exercicios - Java Swing
PDF
PPTX
Windows - Formulários
Prova simulada meio_amb
Simulado 11
Sockets : Introdução
Labs Jogos Java
Exercicios - Java Swing
Windows - Formulários

Destaque (6)

PPTX
Socket
PDF
Java recursos avançados - socket connection
PDF
Java Swing
PDF
Sistemas Distribuídos - Comunicação Distribuída - Socket
PPT
Socket
PDF
Curso de Java #05 - Swing e JavaFX
Socket
Java recursos avançados - socket connection
Java Swing
Sistemas Distribuídos - Comunicação Distribuída - Socket
Socket
Curso de Java #05 - Swing e JavaFX
Anúncio

Semelhante a Socket (20)

PDF
1089335456 paper 4 sockets em java
PDF
Fundamentos de Sockets
PDF
Fundamentos de Sockets
PPT
Sockets java
PDF
Java network-sockets-etc
PDF
Tecnologia java para sockets
PDF
Implementação de Sockets em JAVA
PPT
Redes 1 - Sockets em C#
PDF
Lab 06 ping_com_udp
PDF
Mini-Curso de Sockets no Unipê
ODP
Prog web 00-modelo-cliente_servidor_web
ODP
Prog web 00-modelo-cliente_servidor_web
PDF
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
PDF
Tutorial WebSocket em Java
ODP
11 sockets
PPTX
Sistemas Distribuídos - Aula 05
PPTX
Camada de aplicação parte1
PDF
Introdução a Redes de Computadores - 8 - Nível de Transporte - Sockets
PDF
Apostilas modelo cliente servidor
1089335456 paper 4 sockets em java
Fundamentos de Sockets
Fundamentos de Sockets
Sockets java
Java network-sockets-etc
Tecnologia java para sockets
Implementação de Sockets em JAVA
Redes 1 - Sockets em C#
Lab 06 ping_com_udp
Mini-Curso de Sockets no Unipê
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
Workshop sobre programação em C usando a API Berkeley Sockets - Carlos A. M. ...
Tutorial WebSocket em Java
11 sockets
Sistemas Distribuídos - Aula 05
Camada de aplicação parte1
Introdução a Redes de Computadores - 8 - Nível de Transporte - Sockets
Apostilas modelo cliente servidor
Anúncio

Mais de Mario Jorge Pereira (20)

PDF
Educacao e Inteligencia Artificial Generativa
PDF
Lógica de Programação e Algoritmos
PDF
Guia rapido java v2
PDF
Guia Rápido de Referência Java
PDF
Android por onde começar? Mini Curso Erbase 2015
PDF
Java Nuvem Appengine
PDF
Mini curso Android
PDF
Java Server Faces
PDF
Minicurso Android
PDF
Android, por onde começar?
PDF
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
PDF
Android e Cloud Computing
PDF
RMI (Remote Method Invocation)
PDF
Java e Cloud Computing
PDF
GUI - Eventos
PDF
GUI Aplicações Gráficas
PDF
Revisão Sobre Programação Orientada a Objetos com Java
PDF
Erros comuns em java
Educacao e Inteligencia Artificial Generativa
Lógica de Programação e Algoritmos
Guia rapido java v2
Guia Rápido de Referência Java
Android por onde começar? Mini Curso Erbase 2015
Java Nuvem Appengine
Mini curso Android
Java Server Faces
Minicurso Android
Android, por onde começar?
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Android e Cloud Computing
RMI (Remote Method Invocation)
Java e Cloud Computing
GUI - Eventos
GUI Aplicações Gráficas
Revisão Sobre Programação Orientada a Objetos com Java
Erros comuns em java

Último (20)

PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PDF
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PDF
Apple Pippin Uma breve introdução. - David Glotz
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Custos e liquidação no SAP Transportation Management, TM130 Col18
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
20250805_ServiceNow e a Arquitetura Orientada a Serviços (SOA) A Base para Ap...
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Aula 18 - Manipulacao De Arquivos python
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Aula sobre desenvolvimento de aplicativos
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Apple Pippin Uma breve introdução. - David Glotz

Socket

  • 2. Pacote java.net O pacote java.net contém classes para implementar comunicação através da rede Fáceis de usar. Semelhante à criação de arquivos: Socket sock = new Socket("www.x.com", 80); PrintWriter os = new PrintWriter(new OutputStreamWriter(sock.getOutputStream())); BufferedReader is = new BufferedReader(new InputStreamReader(sock.getInputStream()); os.println("GET / HTTP/1.0nn"); os.flush(); String linha = ""; while ((linha = is.readLine()) != null) { System.out.println(linha); } // ... feche o socket com sock.close();
  • 3. TCP/IP A comunicação via protocolo TCP (Transfer Control Protocol), confiável, é suportada pelas classes Socket (soquete de dados) ServerSocket (soquete do servidor). A comunicação via UDP (Unreliable Datagram Protocol), não-confiável, é suportada pelas classes DatagramSocket (soquete de dados UDP), DatagramPacket (pacote UDP) MulticastSocket (soquete UDP para difusão). Endereçamento InetAddress (representa um endereço na Internet) URL (representa uma URL)
  • 4. URL Representa uma URL Principais métodos openStream() obtém um InputStream para os dados openConnection(): retorna um objeto URLConnection que contém métodos para ler o cabeçalho dos dados getContent(): retorna os dados diretamente como Object se conteúdo for conhecido (texto, imagens, etc.) Para imprimir a página HTML de um site: try { URL url = new URL("http://www.site.com"); InputStreamReader reader = new InputStreamReader(url.openStream()); BufferedReader br = new BufferedReader(reader); String linha = ""; while ( (linha = br.readLine()) != null) { System.out.println(linha); } } catch (MalformedURLException e) { ... }
  • 5. InetAddress Representa um endereço Internet Principais métodos estáticos construtores getLocalHost() retorna InetAddress getByName(String host) retorna InetAddress Principais métodos de instância getHostAddress() retorna String com IP do InetAddress getHostName() retorna String com nome no InetAddress Para descobrir o IP e nome da máquina local: InetAddress address = InetAddress.getLocalHost(); String ip = address.getHostAddress(); String nome = address.getHostName();
  • 6. Socket Um dos lados de uma conexão bidirecional TCP Principais métodos servem para obter fluxos de entrada e saída getInputStream() getOutputStream() close() Exemplo: InetAddress end = InetAddress.getByName("lab21Maq01.fib"); Socket con = new Socket(end, 80); InputStream dados = con.getInputStream(); OutputStream comandos = con.getOutputStream(); Depois de obtido os fluxos, basta ler ou enviar dados
  • 7. Socket Para ler ou gravar caracteres ao invés de bytes, pode-se decorar os fluxos obtidos de um socket com as classes Reader e Writer: Socket con = new Socket("maquina", 4444); Reader r = new InputStreamReader(con.getInputStream()); Writer w = new OutputStreamWriter( con.getOutputStream()); // Seu codigo con.close();
  • 8. ServerSocket Com ServerSocket pode-se implementar um servidor que fica escutando uma porta a espera de um cliente Principal método accept(): aceita a conexão e retorna o seu socket Exemplo de servidor dedicado: ServerSocket escuta = new ServerSocket(80); while(true) { Socket cliente = escuta.accept(); // espera InputStream comandos = cliente.getInputStream(); OutputStream dados = cliente.getOutputStream(); // ... use os dados cliente.close(); }
  • 9. Exercícios 1. Escreva um programa que descubra e imprima o número IP da sua máquina 2. Escreva um programa que Conecte-se na porta HTTP (geralmente 80) de um servidor conhecido Envie o comando: "GET / HTTP/1.0nn" Imprima o resultado 3. Servidor dedicado: escreva um servidor simples que responda ao cliente com um eco do que foi enviado.