Академический Документы
Профессиональный Документы
Культура Документы
Sockets em Java
Redes de Computadores
Redes de Computadores 2
Programação usando Sockets
Tipo particular de modelo de programação em redes utilizado em
várias linguagens como: C, C++ e Java
A comunicação se dá utilizando TCP ou UDP
Para fazer uma conexão via rede é necessário saber:
O endereço da máquina remota (IP ou nome da máquina)
O número da porta na qual o processo remoto está executando
As duas informações acima formam o que se chama de “socket”
Sockets em Java
Classes disponíveis no pacote “java.net”
Redes de Computadores 3
Sockets com TCP
Primeiramente ocorre uma tentativa de estabelecimento de uma
conexão (onde é informado endereço e porta do servidor)
Após, basta enviar dados para o fluxo da conexão (não é preciso
informar endereço e porta novamente)
Baseado no modelo de fluxos (streams)
Um socket utiliza dois fluxos: um fluxo de entrada e outro de saída
Um processo envia dados a outro simplesmente escrevendo no fluxo de
saída associado com um socket
Um processo recebe dados escritos por outro processo lendo de um
fluxo de entrada associado com um socket
estalebecimento
da conexão
“n” troca
de informações
encerramento
Redes de Computadores 4
da conexão
Sockets com TCP (lado servidor)
Criar um socket do tipo “servidor” em uma determinada porta
ServerSocket server = new ServerSocket (6789);
Redes de Computadores 5
Sockets com TCP (lado cliente)
Criar socket cliente e ativar conexão TCP entre cliente e servidor
Socket client = new Socket (“endereçoServidor”, 6789);
Redes de Computadores 6
Exemplo de aplicação usando TCP
Fazer download do programa exemplo (possui as classes
TCPServer.java e TCPClient.java)
Em dupla de alunos, instalar as diferentes classes em diferentes
máquinas
Compilar, rodar, analisar e comentar o código do programa
Redes de Computadores 7
Sockets com UDP
Não há uma tentativa de estabelecimento de uma conexão
Para cada mensagem enviada (tanto pelo cliente quanto pelo servidor)
é necessário informar o endereço e a porta do destinatário
Redes de Computadores 8
Sockets com UDP (lado servidor)
Criar um socket em uma determinada porta
DatagramSocket server = new DatagramSocket(9876);
Redes de Computadores 9
Sockets com UDP (lado cliente)
Criar um socket (ao contrário do TCP, não ativa conexão)
DatagramSocket client = new DatagramSocket();
Redes de Computadores 10
Exemplo de aplicação usando UDP
Fazer download do programa exemplo (possui as classes
UDPServer.java e UDPClient.java)
Em dupla de alunos, instalar as diferentes classes em diferentes
máquinas
Compilar, rodar, analisar e comentar o código do programa
Redes de Computadores 11
Exercício
Desenvolver uma aplicação de bate-papo na sua linguagem de
preferência.
Redes de Computadores 12
Bibliografia
Kurose, J.; Ross, K. Redes de Computadores e Internet: uma nova
abordagem. Boston: Addison-Wesley, 2001.
Deitel, H. M.; Deitel, P. J. Java: como programar. 3. ed. Bookman,
2001.
SUN, Java Tutorial.
http://java.sun.com/docs/books/tutorial/networking/sockets/index.html
http://java.sun.com/docs/books/tutorial/networking/datagrams/index.h
tml
Redes de Computadores 13