0% acharam este documento útil (0 voto)
13 visualizações21 páginas

Sockets em Java: TCP e UDP na Prática

O documento aborda a comunicação interprocesso em Java utilizando sockets, detalhando os protocolos TCP e UDP. Ele explica a estrutura da camada de transporte e como os sockets funcionam como extremidades de comunicação entre aplicações. Exemplos de código são fornecidos para ilustrar a implementação de sockets TCP e UDP em servidores e clientes.

Enviado por

edsonmoser23
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
13 visualizações21 páginas

Sockets em Java: TCP e UDP na Prática

O documento aborda a comunicação interprocesso em Java utilizando sockets, detalhando os protocolos TCP e UDP. Ele explica a estrutura da camada de transporte e como os sockets funcionam como extremidades de comunicação entre aplicações. Exemplos de código são fornecidos para ilustrar a implementação de sockets TCP e UDP em servidores e clientes.

Enviado por

edsonmoser23
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Instituto Federal Catarinense - Campus Ibirama

Técnico em Informática Integrado ao Ensino Médio


Administração
Nome da Disciplina
de Redes

Sockets

Comunicação interprocesso com Java

Prof. Dr. Marcos Yuzuru de Oliveira Camada


xxxx@[Link]
Sumário
● Introdução;
● Camada de Transporte;
● Socket;
● Socket TCP;
● Socket UDP;

Instituto Federal Catarinense - Campus Catu 2


Introdução

3
Introdução
● A linguagem Java disponibiliza um conjunto de recursos de rede predefinidas que
facilitam o desenvolvimento de aplicativos com base na Internet e Web;
● Este recurso permite uma aplicativo interagir com outro aplicativo em qualquer lugar
na Internet;
● O principal pacote Java com recursos para Internet é o ;
● A comunicação pode ser baseada em fluxo de dados ou em pacotes;
● O fluxo de dados ocorre em serviço orientado a conexão e o protocolo utilizado é o
TCP (Transmission Control Protocol);
● Já o fluxo em pacotes ocorre em serviço não orientado a conexão, utilizando o
protocolo UDP (User Datagram Protocol);

Instituto Federal Catarinense - Campus Catu 4


Camada de Transporte

5
Camada de Transporte
● Fornece a comunicação lógica entre processo de aplicação entre hospedeiros (host)
diferentes;

SO do Host 1 Internet SO do Host 2

Aplicação Aplicação
Segmento
Transporte Transporte

Rede Rede

Enlace Enlace

Host 1 Física Física


Host 2

Instituto Federal Catarinense - Campus Catu 6


Tipos de Protocolos da Camada de Transporte
● Transmission Control Protocol (TCP)
● User Datagram Protocol (UDP) ○ Serviço confiável;
○ Serviço não confiável; ○ Orientado para conexão;
○ Não orientado para conexão; ○ Controle de congestionamento;
○ Sem controle de congestionamento; ○ Há o controle de estados da conexão
○ Não há o controle de estados da conexão; ○ Tamanho do cabeçalho: 20 bytes
○ Tamanho do cabeçalho: 8 bytes;

Cada porta é um número de 16 bits (0 a 65535), os números de porta de 0 a 1023 são denominados de portas bem
conhecida. São reservados pelo SO.
Instituto Federal Catarinense - Campus Catu 7
Inversão do Número de Porta

Instituto Federal Catarinense - Campus Catu 8


Protocolos de Transporte Utilizados pelas Principais Aplicações

Instituto Federal Catarinense - Campus Catu 9


Socket

10
Consideração
● Deve-se tratar possíveis erros no processo de comunicação.

Instituto Federal Catarinense - Campus Catu 11


O que é um Socket
● Atua na Camada de Transporte e na Camada de Aplicação;
● Há a participação do Sistema Operacional;

Instituto Federal Catarinense - Campus Catu 12


O que é um Socket
● É uma extremidade de um link de comunicação bidirecional entre dois programas em execução
na rede ou no próprio de computador;
● Um socket é vinculado a um número de porta para que a camada TCP possa identificar o
aplicativo para o qual os dados devem ser enviados;
● O ponto final é uma combinação de um endereço IP e um número de porta;
● Segue o modelo de Cliente e Servidor;

Cliente Servidor

[Link] [Link]

Instituto Federal Catarinense - Campus Catu 13


Socket TCP

14
Servidor
● Aguarda conexão com algum cliente a partir ● Cria-se o canal de comunicação e escreve-se
de uma porta; nele;

# Código ([Link]) # Código ([Link])

1 ... 1 ...
2 ServerSocket servidor = new ServerSocket(VALOR_DA_PORTA); 2 ObjectOutputStream saida = new ObjectOutputStream([Link]());
3 ... 3 [Link]();
4 [Link](new Date());
5 ...

● Cria-se uma conexão com algum cliente


● Finaliza a Conexão
# Código ([Link])

1 ...
# Código ([Link])
2 Socket cliente = [Link]();
3 ... 1 ...
2 [Link]();
3 [Link]();
4 ...

Instituto Federal Catarinense - Campus Catu 15


Cliente
● Estabelece conexão com um servidor em um ● Encerra conexão
determinado endereço e porta; # Código ([Link])

# Código ([Link]) 1 ...


2 [Link]();
3 ...
1 ...
2 Socket cliente = new Socket("endereço",PORTA);
3 ...

● Estabelece um canal de comunicação e recebe


algo do servidor (neste caso, um objeto Date);

# Código ([Link])

1 ...
2 Date dataAtual = (Date)[Link]();
3
4 [Link]("Data recebuda do servidor:
5 "+[Link]());
6 ...

Instituto Federal Catarinense - Campus Catu 16


Socket UDP

17
Servidor ● Cria-se um datagrama

# Código ([Link])
● Cria-se um socket UDP:
1 ...
2 DatagramPacket pacote = new DatagramPacket(mensagem,
# Código ([Link]) 3 [Link]);
...

1 ...
2 DatagramSocket servidor = new DatagramSocket(12346);
3 ... ● Recebe-se o datagrama

# Código ([Link])

● Cria-se um buffer para o datagrama a ser 1 ...


2 [Link](pacote);
recebida do cliente; 3 ...

# Código ([Link])

1 ...
● Finaliza a conexão
2 byte[] mensagem = new byte[256];
3 ... # Código ([Link])

1 ...
2 [Link]();
3 ...

Instituto Federal Catarinense - Campus Catu 18


Cliente
● Cria-se um socket UDP ● Envia o datagrama

# Código ([Link])
# Código ([Link])
1 ...
1 ... 2 [Link](pacote);
2 DatagramSocket cliente = new DatagramSocket(); 3 ...
3 ...

● Cria-se uma mensagem e a empacota em um ● Finaliza o socket


datagrama;
# Código ([Link])
# Código ([Link])
1 ...
2 [Link]();
1 ... 3 ...
2 String mensagem = "Ola todos!";
3
DatagramPacket pacote = new
DatagramPacket([Link](),
[Link]().length,
[Link]("localhost"), 12346);
...

Instituto Federal Catarinense - Campus Catu 19


Referências

20
Referências
● [Link]
_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt&_x_tr_pto=tc
● [Link]

Instituto Federal Catarinense - Campus Catu 21

Você também pode gostar