Título: SOCKETS AYUDA URGENTE PORFAVOR!!!!
Publicado por: Pitagoras en 8 Mayo 2022, 20:23 pm
Buenas, tengo un problema y es que no sé como puedo poner el tiempo transcurrrido (tanto en Cliente como en Servidor) antes de que se imprima la fecha-hora en formato legible por humanos. Apunte: entre cliente y Servidor se intercambian la fecha actual en su tiempo de ejecución. Agradeceria muchiisimo si alguien me pudiese ayudar A continuacion el codigo de Cliente y Servidor: Cliente: public class ClienteHora {
public static void main(String[] args) throws IOException {
final String HOST="127.0.0.1"; //INDICO A QUIEN ME VOY A CONECTAR final int PUERTO=5000;//Pongo el puerto que puse en el servidor //Clases necesarias DataInputStream in; DataOutputStream out; //Cuando el cliente conecta exitosamente al servidor: //Cliente TCP conectado a <nombre host> en el puerto <número puerto> Socket sc = new Socket(HOST, PUERTO); //A esta clase socket le pasamos el HOST y el PUERTO System.out.println("Cliente TCP conectado a: "+HOST+" en el puerto: "+PUERTO); //Creamos puentes de comunicacion in = new DataInputStream(sc.getInputStream()); //inputStream(LEE): cliente -> servidor out = new DataOutputStream(sc.getOutputStream()); String mensaje = in.readUTF(); //leemos el mensaje System.out.println(mensaje); //Esto me servirá para contar los caracteres, los espacios String mayus=""; String minus=""; String numeros=""; String letras=""; int n_mayus=0; int n_minus=0; int n_numeros=0; int n_letras=0; int n_espacios=0; for(int i=0; i<mensaje.length();i++) { if(Character.isLetter(mensaje.charAt(i))) { n_letras++; letras+=mensaje.charAt(i)+" * "; } if(Character.isUpperCase(mensaje.charAt(i))) { n_mayus++; mayus+=mensaje.charAt(i)+" * "; } if(Character.isLowerCase(mensaje.charAt(i))) { n_minus++; minus+=mensaje.charAt(i)+" * "; } if(Character.isDigit(mensaje.charAt(i))) { n_numeros++; numeros+=mensaje.charAt(i)+" * "; } if(Character.isSpaceChar(mensaje.charAt(i))) { n_espacios++; } } System.out.println("Mensaje recibido: "+mensaje); System.out.println("Se han recibido: "+"\n -El número de caracteres: "+n_letras+"\n -Mayusculas: "+n_mayus+"\n -Minusculas: "+n_minus+ "\n -El número de espacios: "+n_espacios+"\n -La cantidad de datos numéricos: "+n_numeros); Date fechaHoraActuales = new Date(); out.writeUTF("fecha y hora enviadas al Servidor: "+ fechaHoraActuales); /* long startTime = System.currentTimeMillis(); // Run some code; long stopTime = System.currentTimeMillis(); System.out.println("El tiempo transcurrido fue: " + (stopTime - startTime) + " miliseconds."); */ sc.close(); } }
Servidor import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java.util.Date;
public class ServidorHora {
public static void main(String[] args) throws IOException { ServerSocket servidor = null; Socket sc = null; final int PUERTO = 5000; final String HOST = "127.0.0.1"; DataInputStream in; DataOutputStream out; servidor = new ServerSocket(PUERTO); System.out.println("El servidor de DayTime ha arrancado: ServerSocket [direccion="+HOST+", localport="+PUERTO+"]" ); //El servidor siempre estará atento a escuchas peticiones de los clientes
while(true) { sc = servidor.accept(); System.out.println("Cliente conectado"); in = new DataInputStream(sc.getInputStream()); out = new DataOutputStream(sc.getOutputStream()); Date fechaHoraActuales = new Date(); out.writeUTF("fecha y hora enviadas al Cliente: "+ fechaHoraActuales); String mensajeN = in.readUTF(); System.out.println(mensajeN); /* long startTime = System.currentTimeMillis(); // Run some code; long stopTime = System.currentTimeMillis(); System.out.println("El tiempo transcurrido fue: " + (stopTime - startTime) + " miliseconds."); */ System.out.println("Cliente desconectado: "+ sc); sc.close(); }
}
}
Título: Re: SOCKETS AYUDA URGENTE PORFAVOR!!!!
Publicado por: Tachikomaia en 8 Mayo 2022, 20:38 pm
Tema repetido parece https://foro.elhacker.net/java/sockets_servidor_ayuda_porfavor-t514746.0.html Como no le responden ahí, crea otro tema igual. Listillo...
Título: Re: SOCKETS AYUDA URGENTE PORFAVOR!!!!
Publicado por: Pitagoras en 8 Mayo 2022, 20:40 pm
Es una especificacion diferente, además si que me ayudaron y respondieron, lo agradezco mucho la verdad! . Si alguien me pudiese ayudar con este dilema porfavor!
Título: Re: SOCKETS AYUDA URGENTE PORFAVOR!!!!
Publicado por: K-YreX en 8 Mayo 2022, 21:27 pm
Para obtener el tiempo transcurrido en una porción de código tienes que seguir los siguientes pasos: - Guardar el instante actual al principio de la porción de código a medir
- Guardar el instante actual al final de la porción de código a medir
- Obtener la diferencia entre ambos instantes
Existen multitud de clases para obtener el instante actual. Pero el mecanismo es ese: int startTime = System. currentTimeMillis(); // aqui pones el codigo que quieras ... int finalTime = System. currentTimeMillis(); int executionTime = finalTime - startTime; System. out. println("Tiempo transcurrido: " + executionTime + " ms");
Título: Re: SOCKETS AYUDA URGENTE PORFAVOR!!!!
Publicado por: Pitagoras en 9 Mayo 2022, 12:10 pm
GRACIAS!!
|