Buscar

Exercicios UDP

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

ExercicioUDP/manifest.mf
Manifest-Version: 1.0
X-COMMENT: Main-Class will be added automatically by build
ExercicioUDP/build.xml
 
 Builds, tests, and runs the project ExercicioUDP.
 
 
exercicioudp/build/classes/.netbeans_update_resources
exercicioudp/build/classes/.netbeans_automatic_build
exercicioudp/src/Local5/Hora.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local5;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
/**
 *
 * @author luis
 */
public class Hora implements IHoraCerta{
 @Override
 public String dataAtual() {
 SimpleDateFormat dataFormatada = new SimpleDateFormat("dd/MM/yyyy");
 Date data = new Date();
 return dataFormatada.format(data);
 }
 @Override
 public String horaAtual() {
 SimpleDateFormat horaFormadata = new SimpleDateFormat("HH:mm:ss");
 Date data = new Date();
 return horaFormadata.format(data);
 }
 
 
 
}
exercicioudp/src/Local5/IHoraCerta.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local5;
/**
 *
 * @author luis
 */
public interface IHoraCerta {
 
 public String dataAtual();
 public String horaAtual();
}
exercicioudp/src/Local5/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local5;
import Local3.*;
import Local2.*;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 
 private int porta;
 
 public Servidor(int porta){
 this.porta = porta;
 }
 public void executarServidor(){
 
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 
 boolean sair = false;
 do{
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um datagrama para receber requiseição do cliente
 
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 
 String resposta = "";
 //aqui
 Hora hr = new Hora();
 
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 }
 else if ("dataAtual".equalsIgnoreCase(mensagem[0]) ) {
 
 // resposta = hr.dataAtual(mensagem[1]);
 resposta = hr.dataAtual();
 }
 
 else if ("horaAtual".equalsIgnoreCase(mensagem[0]) ) {
 
 //resposta = hr.horaAtual(mensagem[1]);
 resposta= hr.horaAtual();
 } 
 
 
 else{
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
 
 System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() +":" +dgRec.getPort() );
 
 //String resposta = "";
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 
 //envianado mensagem para o cliente
 
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(),dgRec.getPort());
 socket.send(dgResposta);
 
 
 
 } while(!sair);
 
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:"+ ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:"+ ex.getMessage());
 ex.printStackTrace();
 }
 
 
 
 }
 
 public static void main(String[] args){
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
 
}
exercicioudp/src/Local5/Cliente.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local5;
import Local3.*;
import Local2.*;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
 *
 * @author luis
 */
public class Cliente {
 
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 
 public void executarCliente(){
 try {
 //Passo 1: criar um socket
 DatagramSocket socket = new DatagramSocket();
 //String mensagem = "Olá";
 //String mensagem = "dataAtual";
 String mensagem = "horaAtual";
 
 
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length,InetAddress.getByName(ip),porta);
 socket.send(dgEnvio);
 
 //Recebe a mensagem do Servidor
 
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgResposta);
 
 String resposta = new String(dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor:" + resposta);
 
 //3º Passo: fecha socket
 socket.close();
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace(); 
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura de msgs: " + ex.getMessage());
 ex.printStackTrace();
 }
 
 }
 public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 //Cliente c = new Cliente(9876, "172.20.220.141");
 c.executarCliente();
 }
 
}
exercicioudp/src/Local6/ICPF_CNPJ.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools
| Templates
 * and open the template in the editor.
 */
package Local6;
/**
 *
 * @author luis
 */
public interface ICPF_CNPJ {
 public boolean validarCPF(String CPF);
 public boolean validarCNPJ(String CNPJ);
}
exercicioudp/src/Local6/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local6;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 private int porta;
 public Servidor(int porta) {
 this.porta = porta;
 }
 public void executarServidor() {
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 boolean sair = false;
 do {
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um datagrama para receber requiseição do cliente
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 String resposta = "";
 //aqui
 Resolucao cpf = new Resolucao();
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 } else if ("CPF".equalsIgnoreCase(mensagem[0])) {
 
 if (cpf.validarCPF(mensagem[1])) {
 resposta = "Verdadeiro";
 } else {
 resposta = "Falso";
 } 
 
 } else if ("CNPJ".equalsIgnoreCase(mensagem[0])) {
 if (cpf.validarCNPJ(mensagem[1])) {
 resposta = "Verdadeiro";
 } else {
 resposta = "Falso";
 } 
 } 
 
 
 
 else {
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
 System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() + ":" + dgRec.getPort());
 //String resposta = "";
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 //envianado mensagem para o cliente
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(), dgRec.getPort());
 socket.send(dgResposta);
 } while (!sair);
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:" + ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:" + ex.getMessage());
 ex.printStackTrace();
 }
 }
 public static void main(String[] args) {
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
}
exercicioudp/src/Local6/Cliente.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local6;
import Local2.*;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
 *
 * @author luis
 */
public class Cliente {
 
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 
 public void executarCliente(){
 try {
 //Passo 1: criar um socket
 DatagramSocket socket = new DatagramSocket();
 //String mensagem = "Olá";
 //String mensagem = "CPF;04565159929";
 String mensagem = "CPF;04565159920";
 
 
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length,InetAddress.getByName(ip),porta);
 socket.send(dgEnvio);
 
 //Recebe a mensagem do Servidor
 
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgResposta);
 
 String resposta = new String(dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor:" + resposta);
 
 //3º Passo: fecha socket
 socket.close();
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace(); 
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura de msgs: " + ex.getMessage());
 ex.printStackTrace();
 }
 
 }
 public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 //Cliente c = new Cliente(9876, "172.20.220.141");
 c.executarCliente();
 }
 
}
exercicioudp/src/Local6/Resolucao.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local6;
import java.util.InputMismatchException;
/**
 *
 * @author luis
 */
public class Resolucao implements ICPF_CNPJ{
 @Override
 public boolean validarCPF(String CPF) {
 
// considera-se erro CPF's formados por uma sequencia de numeros iguais
 if (CPF.equals("00000000000") || CPF.equals("11111111111") ||
 CPF.equals("22222222222") || CPF.equals("33333333333") ||
 CPF.equals("44444444444") || CPF.equals("55555555555") ||
 CPF.equals("66666666666") || CPF.equals("77777777777") ||
 CPF.equals("88888888888") || CPF.equals("99999999999") ||
 (CPF.length() != 11))
 return(false);
 char dig10, dig11;
 int sm, i, r, num, peso;
// "try" - protege o codigo para eventuais erros de conversao de tipo (int)
 try {
// Calculo do 1o. Digito Verificador
 sm = 0;
 peso = 10;
 for (i=0; i<9; i++) { 
// converte o i-esimo caractere do CPF em um numero:
// por exemplo, transforma o caractere '0' no inteiro 0 
// (48 eh a posicao de '0' na tabela ASCII) 
 num = (int)(CPF.charAt(i) - 48); 
 sm = sm + (num * peso);
 peso = peso - 1;
 }
 r = 11 - (sm % 11);
 if ((r == 10) || (r == 11))
 dig10 = '0';
 else dig10 = (char)(r + 48); // converte no respectivo caractere numerico
// Calculo do 2o. Digito Verificador
 sm = 0;
 peso = 11;
 for(i=0; i<10; i++) {
 num
= (int)(CPF.charAt(i) - 48);
 sm = sm + (num * peso);
 peso = peso - 1;
 }
 r = 11 - (sm % 11);
 if ((r == 10) || (r == 11))
 dig11 = '0';
 else dig11 = (char)(r + 48);
// Verifica se os digitos calculados conferem com os digitos informados.
 if ((dig10 == CPF.charAt(9)) && (dig11 == CPF.charAt(10)))
 return(true);
 else return(false);
 } catch (InputMismatchException erro) {
 return(false);
 }
 }
 public static String imprimeCPF(String CPF) {
 return(CPF.substring(0, 3) + "." + CPF.substring(3, 6) + "." +
 CPF.substring(6, 9) + "-" + CPF.substring(9, 11));
 } 
 @Override
 public boolean validarCNPJ(String CNPJ) {
 char dig13, dig14;
 int sm, i, r, num, peso;
 sm = 0;
 peso = 2;
 for (i = 11; i >= 0; i--) {
 num = (int) (CNPJ.charAt(i) - 48);
 sm = sm + (num * peso);
 peso = peso + 1;
 if (peso == 10) {
 peso = 2;
 }
 }
 r = sm % 11;
 if ((r == 0) || (r == 1)) {
 dig13 = '0';
 } else {
 dig13 = (char) ((11 - r) + 48);
 sm = 0;
 peso = 2;
 for (i = 12; i >= 0; i--) {
 num = (int) (CNPJ.charAt(i) - 48);
 sm = sm + (num * peso);
 peso = peso + 1;
 if (peso == 10) {
 peso = 2;
 }
 }
 }
 r = sm % 11;
 if ((r == 0) || (r == 1)) {
 dig14 = '0';
 } else {
 dig14 = (char) ((11 - r) + 48);
 }
 if ((dig13 == CNPJ.charAt(12)) && (dig14 == CNPJ.charAt(13))) {
 return (true);
 } else {
 return (false);
 }
 }
 }
 
 
exercicioudp/build/classes/Local3/Conversor.class
exercicioudp/build/classes/Local3/Servidor.class
exercicioudp/build/classes/Local3/IConversor.class
exercicioudp/build/classes/Local3/Cliente.class
exercicioudp/nbproject/project.properties
annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false
annotation.processing.processor.options=
annotation.processing.processors.list=
annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
build.classes.dir=${build.dir}/classes
build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned:
build.dir=build
build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes
build.test.results.dir=${build.dir}/test/results
# Uncomment to specify the preferred debugger connection transport:
#debug.transport=dt_socket
debug.classpath=\
 ${run.classpath}
debug.test.classpath=\
 ${run.test.classpath}
# Os arquivos em build.classes.dir que devem ser exclu\u00eddos do jar de distribui\u00e7\u00e3o
dist.archive.excludes=
# This directory is removed when the project is cleaned:
dist.dir=dist
dist.jar=${dist.dir}/ExercicioUDP.jar
dist.javadoc.dir=${dist.dir}/javadoc
excludes=
includes=**
jar.compress=false
javac.classpath=
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
javac.processorpath=\
 ${javac.classpath}
javac.source=1.8
javac.target=1.8
javac.test.classpath=\
 ${javac.classpath}:\
 ${build.classes.dir}
javac.test.processorpath=\
 ${javac.test.classpath}
javadoc.additionalparam=
javadoc.author=false
javadoc.encoding=${source.encoding}
javadoc.noindex=false
javadoc.nonavbar=false
javadoc.notree=false
javadoc.private=false
javadoc.splitindex=true
javadoc.use=true
javadoc.version=false
javadoc.windowtitle=
main.class=Local1.Cliente
manifest.file=manifest.mf
meta.inf.dir=${src.dir}/META-INF
mkdist.disabled=false
platform.active=default_platform
run.classpath=\
 ${javac.classpath}:\
 ${build.classes.dir}
# Space-separated list of JVM arguments used when running the project.
# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value.
# To set system properties for unit tests define test-sys-prop.name=value:
run.jvmargs=
run.test.classpath=\
 ${javac.test.classpath}:\
 ${build.test.classes.dir}
source.encoding=UTF-8
src.dir=src
test.src.dir=test
exercicioudp/nbproject/project.xml
 
 org.netbeans.modules.java.j2seproject
 
 
 ExercicioUDP
 
 
 
 
 
 
 
 
exercicioudp/nbproject/build-impl.xml
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must set src.dir
 Must set test.src.dir
 Must set build.dir
 Must set dist.dir
 Must set build.classes.dir
 Must set dist.javadoc.dir
 Must set build.test.classes.dir
 Must set build.test.results.dir
 Must set build.classes.excludes
 Must set dist.jar
Must set javac.includes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 No tests executed.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must set JVM to use for profiling in profiler.info.jvm
 Must set profiler agent JVM arguments in profiler.info.jvmargs.agent
Must select some files in the IDE or set javac.includes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 To run this application from the command line without Ant, try:
 
 java -jar "${dist.jar.resolved}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set run.class
 
 
 
 Must select one file in the IDE or set run.class
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set debug.class
 
 
 
 
 Must select one file in the IDE or set debug.class
 
 
 
 
 Must set fix.includes
 
 
 
 
 
 
 
 
 
 This target only works when run from inside the NetBeans IDE.
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set profile.class
 This target only works when run from inside the NetBeans IDE.
 
 
 
 
 
 
 
 
 This target only works when run from inside the NetBeans IDE.
 
 
 
 
 
 
 
 
 
 
 
 
 This target only works when run from inside the NetBeans IDE.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set run.class
 
 
 
 
 
 Must select some files in the IDE or set test.includes
 
 
 
 
 Must select one file in the IDE or set run.class
 
 
 
 
 Must select one file in the IDE or set applet.url
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must select some files in the IDE or set javac.includes
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 Some tests failed; see details above.
 
 
 
 
 
 
 
 
 Must select some files in the IDE or set test.includes
 
 
 
 Some tests failed; see details above.
 
 
 
 Must select some files in the IDE or set test.class
 Must select some method in the IDE or set test.method
 
 
 
 Some tests failed; see details above.
 
 
 
 
 Must select one file in the IDE or set test.class
 
 
 
 Must select one file in the IDE or set test.class
 Must select some method in the IDE or set test.method
 
 
 
 
 
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set applet.url
 
 
 
 
 
 
 
 
 Must select one file in the IDE or set applet.url
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
exercicioudp/nbproject/genfiles.properties
build.xml.data.CRC32=0cac507a
build.xml.script.CRC32=07329460
build.xml.stylesheet.CRC32=8064a381@1.75.2.48
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=0cac507a
nbproject/build-impl.xml.script.CRC32=ae858d8c
nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48
exercicioudp/build/classes/Local5/Servidor.class
exercicioudp/build/classes/Local5/IHoraCerta.class
exercicioudp/build/classes/Local5/Hora.class
exercicioudp/build/classes/Local5/Cliente.class
exercicioudp/src/Local7/Cliente.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local7;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
 *
 * @author luis
 */
public class Cliente {
 
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 
 public void executarCliente(){
 try {
 //Passo 1: criar um socket
 DatagramSocket socket = new DatagramSocket();
 //String mensagem = "bind;pb.utfpr.edu.br;200.134.80.36;80";
 String mensagem = "bind;google.com.br;74.75.90.141;80";
 //String mensagem = "lookup;google.com.br";
 //String mensagem = "unbind;google.com.br";
 
 
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length,InetAddress.getByName(ip),porta);
 socket.send(dgEnvio);
 
 //Recebe a mensagem do Servidor
 
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
socket.receive(dgResposta);
 
 String resposta = new String(dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor:" + resposta);
 
 //3º Passo: fecha socket
 socket.close();
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace(); 
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura de msgs: " + ex.getMessage());
 ex.printStackTrace();
 }
 
 }
 public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 //Cliente c = new Cliente(9876, "172.20.220.141");
 c.executarCliente();
 }
 
}
exercicioudp/src/Local7/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local7;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 private int porta;
 public Servidor(int porta) {
 this.porta = porta;
 }
 public void executarServidor() {
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 boolean sair = false;
 do {
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um datagrama para receber requiseição do cliente
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 String resposta = "";
 //aqui
 DNSImpl dns = new DNSImpl();
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 } else if("bind".equalsIgnoreCase(mensagem[0])){
 resposta = String.valueOf(dns.bind(String.valueOf(mensagem[1]),String.valueOf(mensagem[2]),Integer.parseInt(mensagem[3])));
 }
 else if ("lookup".equalsIgnoreCase(mensagem[0])) {
 resposta = dns.lookup(mensagem[1]);
 } else if ("unbind".equalsIgnoreCase(mensagem[0])) {
 resposta = dns.unbind(mensagem[1]);
 } 
 
 
 
 else {
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
 System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() + ":" + dgRec.getPort());
 //String resposta = "";
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 //envianado mensagem para o cliente
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(), dgRec.getPort());
 socket.send(dgResposta);
 } while (!sair);
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:" + ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:" + ex.getMessage());
 ex.printStackTrace();
 }
 }
 public static void main(String[] args) {
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
}
exercicioudp/src/Local7/IDNS.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local7;
/**
 *
 * @author luis
 */
public interface IDNS {
 public String bind(String dominio, String IP, int porta);
 public String lookup(String dominio);
 public String unbind(String dominio);
}
exercicioudp/src/Local7/DNS.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local7;
import java.util.Objects;
/**
 *
 * @author luis
 */
public class DNS {
 private String dominio;
 private String ip;
 private int porta;
 public DNS() {
 }
 
 public DNS(String dominio, String ip, int porta) {
 this.dominio = dominio;
 this.ip = ip;
 this.porta = porta;
 }
 public String getDominio() {
 return dominio;
 }
 public void setDominio(String dominio) {
 this.dominio = dominio;
 }
 public String getIp() {
 return ip;
 }
 public void setIp(String ip) {
 this.ip = ip;
 }
 public int getPorta() {
 return porta;
 }
 public void setPorta(int porta) {
 this.porta = porta;
 }
 @Override
 public int hashCode() {
 int hash = 7;
 hash = 59 * hash + Objects.hashCode(this.dominio);
 hash = 59 * hash + Objects.hashCode(this.ip);
 hash = 59 * hash + this.porta;
 return hash;
 }
 @Override
 public boolean equals(Object obj) {
 if (obj == null) {
 return false;
 }
 if (getClass() != obj.getClass()) {
 return false;
 }
 final DNS other = (DNS) obj;
 if (!Objects.equals(this.dominio, other.dominio)) {
 return false;
 }
 return true;
 }
 @Override
 public String toString() {
 return "DNS:" + 
 "\nDominio - " + dominio + 
 "\nIp - " + ip + 
 "\nPorta " + porta + '.';
 }
 
 
 
}
exercicioudp/src/Local7/DNSImpl.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local7;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author luis
 */
public class DNSImpl implements IDNS{
 List<DNS> tabelaDNS;
 
 public DNSImpl(){
 tabelaDNS = new ArrayList();
 }
 
 
 
 @Override
 public String bind(String dominio, String IP, int porta) {
 for (DNS registro : tabelaDNS) {
 
 if (registro.getDominio().equals(dominio)) {
 return "Erro. Dominio já registrado!";
 }
 }
 tabelaDNS.add( new DNS(dominio,IP,porta));
 return "Dominio registrado com sucesso";
 }
 @Override
 public String lookup(String dominio) {
 for (DNS registro : tabelaDNS) {
 if (registro.getDominio().equals(dominio)) {
 return registro.getIp()+":"+registro.getPorta();
 }
 }
 return "Erro. Dominio não encontrado";
 }
 @Override
 public String unbind(String
dominio) {
 for (DNS registro : tabelaDNS) {
 if (registro.getDominio().equals(dominio)) {
 tabelaDNS.remove(registro);
 return "Dominio removido com sucesso!";
 }
 }
 return "Erro. Dominio não encontrado!";
 }
 
}
exercicioudp/src/Local8/Cliente.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local8;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
 *
 * @author luis
 */
public class Cliente {
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 public void executarCliente() {
 try {
 //Passo 1: criar um socket
 DatagramSocket socket = new DatagramSocket();
 String mensagem = "insert;1;Televisão;10;1750.00";
 // String mensagem = "sair";
 // String mensagem = "delete;1";
 // String mensagem = "find;1";
 
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length, InetAddress.getByName(ip), porta);
 socket.send(dgEnvio);
 //Recebe a mensagem do Servidor
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgResposta);
 String resposta = new String(dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor:" + resposta);
 //3º Passo: fecha socket
 socket.close();
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação: " + ex.getMessage());
 ex.printStackTrace();
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura de msgs: " + ex.getMessage());
 ex.printStackTrace();
 }
 }
 public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 //Cliente c = new Cliente(9876, "172.20.220.141");
 c.executarCliente();
 }
}
exercicioudp/src/Local8/ProdutoIMPL.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local8;
import java.util.ArrayList;
import java.util.List;
/**
 *
 * @author luis
 */
public class ProdutoIMPL implements Icadastro {
 
 private List<Produto> listaProduto;
 ProdutoIMPL() {
 this.listaProduto = new ArrayList<>();
 }
 @Override
 public String insert(Produto produto) {
 for (Produto p : listaProduto) {
 if (p.getCodigo() == produto.getCodigo()) {
 return "Erro: produto já cadastrado!";
 }
 }
 listaProduto.add(produto);
 return "Ok. Produto cadastrado!";
 }
 @Override
 public String delete(Produto produto) {
 for (Produto p : listaProduto) {
 if (p.getCodigo() == produto.getCodigo()) {
 listaProduto.remove(produto);
 return "Ok. Produto removido!";
 }
 }
 return "Erro: Produto não encontrado!";
 }
 @Override
 public String find(int codigo) {
 for (Produto p : listaProduto) {
 if (p.getCodigo() == codigo) {
 return "-------------------------------------------------------\n"
 + "Produto: " + p.getNome()
 + "\nValor: " + p.getValor()
 + "\nSaldo: " + p.getSaldo()
 + "\n-------------------------------------------------------";
 }
 }
 return "Erro: produto não existe!";
 }
 
 
}
exercicioudp/src/Local8/Icadastro.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local8;
/**
 *
 * @author luis
 */
public interface Icadastro {
 
 public String insert(Produto produto);
 public String delete(Produto produto);
 public String find(int codigo);
 
}
exercicioudp/src/Local8/Produto.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local8;
import java.util.Objects;
/**
 *
 * @author luis
 */
public class Produto {
 
 private int codigo;
 private String nome;
 private double valor;
 private int saldo;
 public Produto() {
 }
 
 public Produto(int codigo, String nome, double valor, int saldo) {
 this.codigo = codigo;
 this.nome = nome;
 this.valor = valor;
 this.saldo = saldo;
 }
 public int getCodigo() {
 return codigo;
 }
 public void setCodigo(int codigo) {
 this.codigo = codigo;
 }
 public String getNome() {
 return nome;
 }
 public void setNome(String nome) {
 this.nome = nome;
 }
 public double getValor() {
 return valor;
 }
 public void setValor(double valor) {
 this.valor = valor;
 }
 public int getSaldo() {
 return saldo;
 }
 public void setSaldo(int saldo) {
 this.saldo = saldo;
 }
 
 @Override
 public int hashCode() {
 int hash = 3;
 hash = 29 * hash + this.codigo;
 hash = 29 * hash + Objects.hashCode(this.nome);
 hash = 29 * hash + (int) (Double.doubleToLongBits(this.valor) ^ (Double.doubleToLongBits(this.valor) >>> 32));
 hash = 29 * hash + this.saldo;
 return hash;
 }
 @Override
 public boolean equals(Object obj) {
 if (obj == null) {
 return false;
 }
 if (getClass() != obj.getClass()) {
 return false;
 }
 final Produto other = (Produto) obj;
 if (this.codigo != other.codigo) {
 return false;
 }
 return true;
 }
}
 
 
exercicioudp/src/Local8/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local8;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 private int porta;
 public Servidor(int porta) {
 this.porta = porta;
 }
 public void executarServidor() {
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 boolean sair = false;
 
 ProdutoIMPL produto = new ProdutoIMPL();
 
 do {
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um
datagrama para receber requiseição do cliente
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 String resposta = "";
 //aqui
 //ProdutoIMPL produto = new ProdutoIMPL();
 Produto p = new Produto();
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 } else if ("insert".equalsIgnoreCase(mensagem[0])) {
 
 //Produto p = new Produto();
 p.setCodigo(Integer.parseInt(mensagem[1]));
 p.setNome(mensagem[2]);
 p.setSaldo(Integer.parseInt(mensagem[3]));
 p.setValor(Double.parseDouble(mensagem[4]));
 resposta = produto.insert(p);
 
 } else if ("delete".equalsIgnoreCase(mensagem[0])) {
 p.setCodigo(Integer.parseInt(mensagem[1]));
 resposta = produto.delete(p);
 
 } else if ("find".equalsIgnoreCase(mensagem[0])) {
 resposta = produto.find(Integer.parseInt(mensagem[1]));
 } 
 
 
 
 else {
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
 System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() + ":" + dgRec.getPort());
 //String resposta = "";
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 //envianado mensagem para o cliente
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(), dgRec.getPort());
 socket.send(dgResposta);
 } while (!sair);
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:" + ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:" + ex.getMessage());
 ex.printStackTrace();
 }
 }
 public static void main(String[] args) {
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
}
exercicioudp/src/Local2/StringMatematica.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local2;
/**
 *
 * @author luis
 */
public class StringMatematica implements IMatematica{
 @Override
 public double somar(double a, double b) {
 double soma = a+b;
 return soma;
 }
 @Override
 public double subtrair(double a, double b) {
 double subtrair = a-b;
 return subtrair;
 }
 @Override
 public double multiplicar(double a, double b) {
 double multiplicar = a*b;
 return multiplicar;
 }
 @Override
 public double dividir(double a, double b) {
 double dividir = a/b;
 return dividir;
 }
 @Override
 public double[][] somar(double[][] a, double[][] b) {
 double resultado[][] = null;
 for (int i = 0; i < a.length; i++) {
 for (int j = 0; j < b.length; j++) {
 resultado[i][j] = a[i][j] + b[i][j];
 }
 }
 return resultado;
 }
 @Override
 public double[][] subtrair(double[][] a, double[][] b) {
 double resultado[][] = null;
 for (int i = 0; i < a.length; i++) {
 for (int j = 0; j < b.length; j++) {
 resultado[i][j] = a[i][j] - b[i][j];
 }
 }
 return resultado;
 }
 @Override
 public double[][] multiplicar(double[][] a, double[][] b) {
 double resultado [][] = null;
 for (int i = 0; i < a.length; i++) {
 for (int j = 0; j < b.length; j++) {
 resultado[i][j] = a[i][j] * b[i][j];
 }
 
 }
 return resultado;
 }
 @Override
 public double[][] multiplicar(double[][] a, double b) {
 double resultado [][] = null;
 for (int i = 0; i < a.length; i++) {
 for (int j = 0; j < i; j++) {
 resultado[i][j] = a[i][j] * b;
 
 }
 
 }
 return resultado;
 }
 
 
}
exercicioudp/src/Local2/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local2;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 
 private int porta;
 
 public Servidor(int porta){
 this.porta = porta;
 }
 public void executarServidor(){
 
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 
 boolean sair = false;
 do{
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um datagrama para receber requiseição do cliente
 
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 
 String resposta = "";
 //aqui
 StringMatematica strMatematica = new StringMatematica();
 
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 }
 else if ("Somar".equalsIgnoreCase(mensagem[0]) ) {
 //Transformar mensagem p/ Double depois transformar tudo para String 
 resposta = String.valueOf(strMatematica.somar(Double.parseDouble(mensagem[1]),Double.parseDouble( mensagem[2])));
 }
 else if ("Subtrair".equalsIgnoreCase(mensagem[0]) ) {
 
 resposta = String.valueOf(strMatematica.subtrair(Double.parseDouble(mensagem[1]),Double.parseDouble( mensagem[2])));
 }
 else if ("Multiplicar".equalsIgnoreCase(mensagem[0]) ) {
 
 resposta = String.valueOf(strMatematica.multiplicar(Double.parseDouble(mensagem[1]),Double.parseDouble( mensagem[2])));
 }
 else if ("Dividir".equalsIgnoreCase(mensagem[0]) ) {
 
 resposta = String.valueOf(strMatematica.dividir(Double.parseDouble(mensagem[1]),Double.parseDouble( mensagem[2])));
 }
 
 else{
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() +":" +dgRec.getPort() );
 
 //String resposta = "";
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 
 //envianado mensagem para o cliente
 
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(),dgRec.getPort());
 socket.send(dgResposta);
 
 
 
 } while(!sair);
 
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:"+ ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:"+ ex.getMessage());
 ex.printStackTrace();
 }
 
 
 
 }
 
 public static void main(String[] args){
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
 
}
exercicioudp/src/Local2/IMatematica.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local2;
/**
 *
 * @author luis
 */
public interface IMatematica {
 
 public double somar(double a, double b);
 public double subtrair(double a, double b);
 public double multiplicar(double a, double b);
 public double dividir(double a, double b);
 public double[][] somar(double a[][], double b[][]);
 public double[][] subtrair(double a[][], double b[][]);
 public double[][] multiplicar(double a[][], double b[][]);
 public double[][] multiplicar(double a[][], double b);
}
exercicioudp/src/Local2/Cliente.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local2;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
/**
 *
 * @author luis
 */
public class Cliente {
 
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 
 public void executarCliente(){
 try {
 //Passo 1: criar um socket
 DatagramSocket socket = new DatagramSocket();
 //String mensagem = "Olá";
 String mensagem = "Dividir;9;3";
 
 
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length,InetAddress.getByName(ip),porta);
 socket.send(dgEnvio);
 
 //Recebe a mensagem do Servidor
 
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgResposta);
 
 String resposta = new String(dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor:" + resposta);
 
 //3º Passo: fecha socket
 socket.close();
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace(); 
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura de msgs: " + ex.getMessage());
 ex.printStackTrace();
 }
 
 }
 public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 //Cliente c = new Cliente(9876, "172.20.220.141");
 c.executarCliente();
 }
 
}
exercicioudp/nbproject/private/private.properties
compile.on.save=true
user.properties.file=/home/luis/.netbeans/8.0/build.properties
exercicioudp/nbproject/private/private.xml
 
 
 
 
 
exercicioudp/build/classes/Local2/Cliente.class
exercicioudp/build/classes/Local2/StringMatematica.class
exercicioudp/build/classes/Local2/Servidor.class
exercicioudp/build/classes/Local2/IMatematica.class
exercicioudp/build/classes/Local8/Produto.class
exercicioudp/build/classes/Local8/Cliente.class
exercicioudp/build/classes/Local8/Servidor.class
exercicioudp/build/classes/Local8/ProdutoIMPL.class
exercicioudp/build/classes/Local8/Icadastro.class
exercicioudp/build/classes/Local6/Servidor.class
exercicioudp/build/classes/Local6/ICPF_CNPJ.class
exercicioudp/build/classes/Local6/Resolucao.class
exercicioudp/build/classes/Local6/Cliente.class
exercicioudp/src/Local4/Cliente.java
package Local4;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
public class Cliente {
 private int porta;
 private String ip;
 public Cliente(int porta, String ip) {
 this.porta = porta;
 this.ip = ip;
 }
 public void executarCliente() {
 try {
 //passo 1: criar um socket;
 DatagramSocket socket = new DatagramSocket();
 
 //passo 2: Realizar comunicação com o servidor
 String mensagem = "converter;Dolar;Real;1.00";
 // String mensagem = "sair";
 byte[] msg = mensagem.getBytes();
 DatagramPacket dgEnvio = new DatagramPacket(msg, msg.length, InetAddress.getByName(ip), porta);
 socket.send(dgEnvio);
 //Recebe a mensagem do servidor
 DatagramPacket dgResposta = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgResposta);
 
 String resposta = new String (dgResposta.getData()).trim();
 System.out.println("Resposta do Servidor: " + resposta);
 
 //passo 3: fecha o socket
 socket.close();
 
 } catch (SocketException ex) {
 System.out.println("Erro de comunicacao: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (UnknownHostException ex) {
 System.out.println("Erro de host desconhecido: " + ex.getMessage());
 ex.printStackTrace();
 
 } catch (IOException ex) {
 System.out.println("Erro no envio/leitura das mensagens: " + ex.getMessage());
 ex.printStackTrace();
 
 }
 }
public static void main(String[] args) {
 Cliente c = new Cliente(9876, "127.0.0.1");
 c.executarCliente();
}
}
exercicioudp/src/Local4/Servidor.java
package Local4;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Servidor {
 private int porta;
 public Servidor(int porta) {
 this.porta = porta;
 }
 public void executarServidor() {
 try {
 //Passo: Servidor deve criar um socket.
 DatagramSocket
socket = new DatagramSocket(porta);
 System.out.println("Servidor ouvindo na porta: " + porta);
 boolean sair = false;
 do {
 /*passo 2: Realizar comunicação com o cliente segundo um protocolo.
 Cria um datagrama para receber requisição do cliente
 */
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 System.out.println("Recebeu " + mensagem[0] + "de" + dgRec.getAddress() + ":" + dgRec.getPort());
 String resposta = "";
 // IStringUtil strUtil = new StringUtilImp1();
 Conversor c = new Conversor();
 c.adicionarCotacao("Real", 1.00);
 c.adicionarCotacao("Dolar", 2.25);
 c.adicionarCotacao("Euro", 3.00);
 c.adicionarCotacao("Libra", 3.55);
 c.adicionarCotacao("Peso", 0.35);
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor encerrando!";
 } else if ("converter".equalsIgnoreCase(mensagem[0])) {
 resposta = String.valueOf(c.converter(mensagem[1], mensagem[2], Double.parseDouble(mensagem[3])));
 } else {
 resposta = "Nenhum método executado";
 }
 //Enviando mensagem para o cliente
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(), resposta.getBytes().length, dgRec.getAddress(), dgRec.getPort());
 socket.send(dgResposta);
 } while (!sair);
 //Fecha o socket
 socket.close();
 System.out.println("Servidor encerrado!");
 } catch (SocketException ex) {
 System.out.println("ERRO DE COMUNICACAO: " + ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 System.out.println("Erro envio/recepcao de datagramas:" + ex.getMessage());
 ex.printStackTrace();
 }
 }
 public static void main(String[] args) {
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
}
exercicioudp/src/Local4/IConversor.java
package Local4;
import java.util.Map;
public interface IConversor {
 public double converter(String de, String para, double valor);
 public void adicionarCotacao(String moeda, double cotacao);
 public void removerCotacao(String moeda);
 public Map<String, Double> listarCotacoes();
}
exercicioudp/src/Local4/Conversor.java
package Local4;
import java.util.HashMap;
import java.util.Map;
public class Conversor implements IConversor {
 Map<String, Double> tabelaConversao;
 public Conversor() {
 tabelaConversao = new HashMap<>();
 }
 @Override
 public double converter(String de, String para, double valor) {
 double conversao = 0;
 tabelaConversao.get(de);
 conversao = tabelaConversao.get(de) / tabelaConversao.get(para) * valor;
 if (de.equals("Real")) {
 conversao = valor / tabelaConversao.get(para);
 } else if (para.equals("Real")) {
 conversao = valor * tabelaConversao.get(de);
 } else {
 double convTemp = converter(de, "Real", valor);
 conversao = converter("Real", para, convTemp);
 }
 return conversao;
 }
 @Override
 public void adicionarCotacao(String moeda, double cotacao) {
 tabelaConversao.put(moeda, cotacao);
 }
 @Override
 public void removerCotacao(String moeda) {
 tabelaConversao.remove(moeda);
 }
 @Override
 public Map<String, Double> listarCotacoes() {
 return tabelaConversao;
 }
}
exercicioudp/src/Local3/Servidor.java
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Local3;
import Local2.*;
import Local1.*;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author luis
 */
public class Servidor {
 
 private int porta;
 
 public Servidor(int porta){
 this.porta = porta;
 }
 public void executarServidor(){
 
 try {
 //1ºPasso: Servidor deve criar um socket
 DatagramSocket socket = new DatagramSocket(porta);
 System.out.println("Servidor Vai estar ouvindo na porta:" + porta);
 
 boolean sair = false;
 do{
 //2ºPasso: Realizar comunicação com cliente segundo um protocolo.
 // Cria um datagrama para receber requiseição do cliente
 
 DatagramPacket dgRec = new DatagramPacket(new byte[1024], 1024);
 socket.receive(dgRec);
 
 String[] mensagem = new String(dgRec.getData()).trim().split(";");
 
 String resposta = "";
 //aqui
 Conversor strConversor = new Conversor();
 
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encerrado";
 }
 else if ("fatorial".equalsIgnoreCase(mensagem[0]) ) {
 //Transformar mensagem p/ Double depois transformar tudo para String 
 resposta = String.valueOf(strConversor.fatorial(Integer.parseInt(mensagem[1])));
 }
 else if ("convertACMtoDEC".equalsIgnoreCase(mensagem[0]) ) {
 //Transformar mensagem p/ Double depois transformar tudo para String 
 resposta = String.valueOf(strConversor.convertACMtoDEC(Integer.parseInt(mensagem[1])));
 } 
 
 
 else{
 resposta = "Nenhum metodo executado";
 System.out.println("Servidor Ecoando mensagem para o cliente");
 }
 
 System.out.println("Recebeu" + mensagem[0] + "de" + dgRec.getAddress() +":" +dgRec.getPort() );
 
 //String resposta = "";
 
 if ("sair".equalsIgnoreCase(mensagem[0])) {
 sair = true;
 resposta = "Servidor Encarregado!";
 }
 
 //envianado mensagem para o cliente
 
 DatagramPacket dgResposta = new DatagramPacket(resposta.getBytes(),
 resposta.getBytes().length, dgRec.getAddress(),dgRec.getPort());
 socket.send(dgResposta);
 
 
 
 } while(!sair);
 
 socket.close();
 System.out.println("Servidor Encerrado!");
 } catch (SocketException ex) {
 System.out.println("Erro de comunicação:"+ ex.getMessage());
 ex.printStackTrace();
 } catch (IOException ex) {
 Logger.getLogger("Erro de envio/recepção dos datagramas:"+ ex.getMessage());
 ex.printStackTrace();
 }
 
 
 
 }
 
 public static void main(String[] args){
 Servidor s = new Servidor(9876);
 s.executarServidor();
 }
 
}
exercicioudp/src/Local3/Conversor.java
package Local3;
public class Conversor

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais