Advertisement
lucast0rres

SocketsUDP

Aug 30th, 2017
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.78 KB | None | 0 0
  1. /////////// SERVIDOR
  2. import java.io.*;
  3. import java.net.*;
  4.  
  5. public class ServidorUDP
  6. {
  7.     public static void main(String args[]) throws Exception {
  8.         byte[] dadosRecebidos1 = new byte[1024];
  9.         byte[] dadosRecebidos2 = new byte[1024];
  10.         byte[] dadosEnviados = new byte[1024];
  11.  
  12.         DatagramSocket socketServidor = null;
  13.         try{
  14.             //Inicializa o socket com a porta 9876
  15.             socketServidor = new DatagramSocket(9876);
  16.    
  17.             while(true) {
  18.                 //Socket recebe um pacote (IMPAR)
  19.                 DatagramPacket pacoteRecebido1 =
  20.                     new DatagramPacket(dadosRecebidos1, dadosRecebidos1.length);
  21.                 System.out.println("Esperando clientes (1):");
  22.                 socketServidor.receive(pacoteRecebido1);
  23.                
  24.                 //Socket recebe outro pacote (PAR)
  25.                 DatagramPacket pacoteRecebido2 =
  26.                     new DatagramPacket(dadosRecebidos2, dadosRecebidos2.length);
  27.                 System.out.println("Esperando clientes (2):");
  28.                 socketServidor.receive(pacoteRecebido2);
  29.  
  30.                 //O conteúdo é mostrado (1)
  31.                 String conteudoRecebido1 = new String(pacoteRecebido1.getData());
  32.                 System.out.println("Recebido: " + conteudoRecebido1);
  33.                
  34.                 //O conteúdo é mostrado (2)
  35.                 String conteudoRecebido2 = new String(pacoteRecebido2.getData());
  36.                 System.out.println("Recebido: " + conteudoRecebido2);
  37.                
  38.                 String conteudoEnviado = "Sem resultado";
  39.                
  40.                 Integer teste_paridade = new Integer(conteudoRecebido1) + new Integer(conteudoRecebido2);
  41.                 if (teste_paridade%2 == 0) {
  42.                     //Os dados são enviados
  43.                     //String conteudoEnviado = conteudoRecebido2;
  44.                     //dadosEnviados = conteudoEnviado.getBytes();
  45.                     conteudoEnviado = "Vencedor (PAR)";
  46.                 } else {
  47.                     //Os dados são enviados
  48.                     //String conteudoEnviado = conteudoRecebido1;
  49.                     //dadosEnviados = conteudoEnviado.getBytes();
  50.                     conteudoEnviado = "Vencedor (IMPAR)";
  51.                 }
  52.                 //Endereço e porta de origem são recuperados (1)
  53.                 InetAddress IPAddress1 = pacoteRecebido1.getAddress();
  54.                 int port1 = pacoteRecebido1.getPort();
  55.                
  56.                 //Endereço e porta de origem são recuperados (2)
  57.                 InetAddress IPAddress2 = pacoteRecebido2.getAddress();
  58.                 int port2 = pacoteRecebido2.getPort();
  59.                
  60.                 //Um pacote é preparado e enviado (1)
  61.                 DatagramPacket pacoteEnviado1 =
  62.                     new DatagramPacket(dadosEnviados, dadosEnviados.length,
  63.                     IPAddress1, port1);
  64.                 socketServidor.send(pacoteEnviado1);
  65.                 System.out.println("Enviado para porta " + port1 + ": " + conteudoEnviado);
  66.                
  67.               //Um pacote é preparado e enviado (2)
  68.                 DatagramPacket pacoteEnviado2 =
  69.                     new DatagramPacket(dadosEnviados, dadosEnviados.length,
  70.                     IPAddress2, port2);
  71.                 socketServidor.send(pacoteEnviado2);
  72.                 System.out.println("Enviado para porta " + port2 + ": " + conteudoEnviado);
  73.                
  74.             }
  75.         }catch (SocketException e){System.out.println("Socket: " + e.getMessage());
  76.         }catch (IOException e) {System.out.println("IO: " + e.getMessage());
  77.         }finally {if(socketServidor != null) socketServidor.close();}
  78.     }
  79. }
  80.  
  81. //////////////// CLIENTE
  82.  
  83. import java.net.*;
  84. import java.io.*;
  85.  
  86. public class ClienteUDP
  87. {
  88.     public static void main(String args[]) throws Exception {
  89.         byte[] dadosEnviados = new byte[1024];
  90.         byte[] dadosRecebidos = new byte[1024];
  91.         DatagramSocket socketCliente = null;
  92.         try {
  93.             //Prepara leitura do teclado
  94.             BufferedReader entradaDoUsuario = new BufferedReader(new InputStreamReader(System.in));
  95.             dadosEnviados = entradaDoUsuario.readLine().getBytes();
  96.  
  97.             //Prepara socket e endereço de servidor
  98.             socketCliente = new DatagramSocket();
  99.             InetAddress IPAddress = InetAddress.getByName("localhost");
  100.            
  101.             //Prepara pacote a ser enviado
  102.             DatagramPacket pacoteEnviado = new DatagramPacket(dadosEnviados, dadosEnviados.length, IPAddress, 9876);
  103.             socketCliente.send(pacoteEnviado);
  104.            
  105.             //Recebe pacote do servidor
  106.             DatagramPacket pacoteRecebido = new DatagramPacket(dadosRecebidos, dadosRecebidos.length);
  107.             System.out.println("Aguardando retorno...");
  108.             socketCliente.receive(pacoteRecebido);
  109.            
  110.             //Escreve conteúdo recebido
  111.             String entradaModificada = new String(pacoteRecebido.getData());
  112.             System.out.println("Recebido do servidor:" + entradaModificada);
  113.             socketCliente.close();
  114.         }catch (SocketException e){System.out.println("Socket: " + e.getMessage());
  115.         }catch (IOException e) {System.out.println("IO: " + e.getMessage());
  116.         }finally {if(socketCliente != null) socketCliente.close();}
  117.     }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement