Вы находитесь на странице: 1из 13

Programação:

Sockets em Java

Redes de Computadores

Glauco Antonio Ludwig


Leonardo Lemes Fagundes
Roteiro

 Programação usando Sockets


Sockets com TCP
 Exemplo de aplicação
Sockets com UDP
 Exemplo de aplicação
Exercício
 Bibliografia

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);

 Esperar por uma conexão (permanece bloqueado até um pedido de


conexão ser recebido)
Socket connectionSocket = server.accept();

 Criar o fluxo de entrada e o de saída


ObjectInputStream input = new ObjectInputStream
(connection.getInputStream());
ObjectOutPutStream output = new ObjectOutputStream
(connection.getOutputStream());

 Recebendo e enviando dados


String message = (String) input.readObject();
output.writeObject(“os dados foram recebidos”);

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);

 Criar o fluxo de entrada e o de saída


ObjectInputStream input = new ObjectInputStream
(client.getInputStream());
ObjectOutPutStream output = new ObjectOutputStream
(client.getOutputStream());

 Enviando e recebendo dados


output.writeObject(“enviando dados”);
String message = (String) input.readObject();

 Fechar conexão com o servidor


client.close();

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);

 Criar um objeto para receber o pacote/Criar um


pacote para ser enviado
DatagramPacket receivePacket = new
DatagramPacket(receiveData, receiveData.length);
DatagramPacket sendPacket = new DatagramPacket
(sendData, sendData.length, IPAddress, port);

 Recebendo e enviando os pacotes


server.receive(receivePacket);
server.send(sendPacket);

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();

 Criar um pacote para ser enviado/Criar um objeto para


receber o pacote
DatagramPacket sendPacket = new DatagramPacket (sendData,
sendData.length, IPAddress, 9876);
DatagramPacket receivePacket = new
DatagramPacket(receiveData, receiveData.length);

 Recebendo e enviando os pacotes


client.send(sendPacket);
client.receive(receivePacket);

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

Вам также может понравиться