Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /////////// SERVIDOR
- import java.io.*;
- import java.net.*;
- public class ServidorUDP
- {
- public static void main(String args[]) throws Exception {
- byte[] dadosRecebidos1 = new byte[1024];
- byte[] dadosRecebidos2 = new byte[1024];
- byte[] dadosEnviados = new byte[1024];
- DatagramSocket socketServidor = null;
- try{
- //Inicializa o socket com a porta 9876
- socketServidor = new DatagramSocket(9876);
- while(true) {
- //Socket recebe um pacote (IMPAR)
- DatagramPacket pacoteRecebido1 =
- new DatagramPacket(dadosRecebidos1, dadosRecebidos1.length);
- System.out.println("Esperando clientes (1):");
- socketServidor.receive(pacoteRecebido1);
- //Socket recebe outro pacote (PAR)
- DatagramPacket pacoteRecebido2 =
- new DatagramPacket(dadosRecebidos2, dadosRecebidos2.length);
- System.out.println("Esperando clientes (2):");
- socketServidor.receive(pacoteRecebido2);
- //O conteúdo é mostrado (1)
- String conteudoRecebido1 = new String(pacoteRecebido1.getData());
- System.out.println("Recebido: " + conteudoRecebido1);
- //O conteúdo é mostrado (2)
- String conteudoRecebido2 = new String(pacoteRecebido2.getData());
- System.out.println("Recebido: " + conteudoRecebido2);
- String conteudoEnviado = "Sem resultado";
- Integer teste_paridade = new Integer(conteudoRecebido1) + new Integer(conteudoRecebido2);
- if (teste_paridade%2 == 0) {
- //Os dados são enviados
- //String conteudoEnviado = conteudoRecebido2;
- //dadosEnviados = conteudoEnviado.getBytes();
- conteudoEnviado = "Vencedor (PAR)";
- } else {
- //Os dados são enviados
- //String conteudoEnviado = conteudoRecebido1;
- //dadosEnviados = conteudoEnviado.getBytes();
- conteudoEnviado = "Vencedor (IMPAR)";
- }
- //Endereço e porta de origem são recuperados (1)
- InetAddress IPAddress1 = pacoteRecebido1.getAddress();
- int port1 = pacoteRecebido1.getPort();
- //Endereço e porta de origem são recuperados (2)
- InetAddress IPAddress2 = pacoteRecebido2.getAddress();
- int port2 = pacoteRecebido2.getPort();
- //Um pacote é preparado e enviado (1)
- DatagramPacket pacoteEnviado1 =
- new DatagramPacket(dadosEnviados, dadosEnviados.length,
- IPAddress1, port1);
- socketServidor.send(pacoteEnviado1);
- System.out.println("Enviado para porta " + port1 + ": " + conteudoEnviado);
- //Um pacote é preparado e enviado (2)
- DatagramPacket pacoteEnviado2 =
- new DatagramPacket(dadosEnviados, dadosEnviados.length,
- IPAddress2, port2);
- socketServidor.send(pacoteEnviado2);
- System.out.println("Enviado para porta " + port2 + ": " + conteudoEnviado);
- }
- }catch (SocketException e){System.out.println("Socket: " + e.getMessage());
- }catch (IOException e) {System.out.println("IO: " + e.getMessage());
- }finally {if(socketServidor != null) socketServidor.close();}
- }
- }
- //////////////// CLIENTE
- import java.net.*;
- import java.io.*;
- public class ClienteUDP
- {
- public static void main(String args[]) throws Exception {
- byte[] dadosEnviados = new byte[1024];
- byte[] dadosRecebidos = new byte[1024];
- DatagramSocket socketCliente = null;
- try {
- //Prepara leitura do teclado
- BufferedReader entradaDoUsuario = new BufferedReader(new InputStreamReader(System.in));
- dadosEnviados = entradaDoUsuario.readLine().getBytes();
- //Prepara socket e endereço de servidor
- socketCliente = new DatagramSocket();
- InetAddress IPAddress = InetAddress.getByName("localhost");
- //Prepara pacote a ser enviado
- DatagramPacket pacoteEnviado = new DatagramPacket(dadosEnviados, dadosEnviados.length, IPAddress, 9876);
- socketCliente.send(pacoteEnviado);
- //Recebe pacote do servidor
- DatagramPacket pacoteRecebido = new DatagramPacket(dadosRecebidos, dadosRecebidos.length);
- System.out.println("Aguardando retorno...");
- socketCliente.receive(pacoteRecebido);
- //Escreve conteúdo recebido
- String entradaModificada = new String(pacoteRecebido.getData());
- System.out.println("Recebido do servidor:" + entradaModificada);
- socketCliente.close();
- }catch (SocketException e){System.out.println("Socket: " + e.getMessage());
- }catch (IOException e) {System.out.println("IO: " + e.getMessage());
- }finally {if(socketCliente != null) socketCliente.close();}
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement