elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: [1] 2 3
1  Programación / Java / SOCKETS UDP Ayuda!! en: 15 Mayo 2022, 14:21 pm
Buenas, estoy haciendo un programa en java Cliente y Servidor con sockets UDP. El cliente y el servidor se deben de enviar mutuamente ( intercambiando mensajes ) la hora actual en el momento de ejecucion, y tambien deben de imprimir el número segundos transcurridos en el intercambio de mensajes(ESTO ULTIMO NO TENGO NI IDEA DE COMO LO PUEDO HACER). He hecho el codigo del intercambio de hora pero me da error. Si alguien porfavor me pudiese ayudar a saber donde esta el fallo y tambien si me puede ayudar a saber como puedo hallar los segundos transcurridos, estaría muy agradecida.

Codigo Cliente:

Código:
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.text.SimpleDateFormat;
import java.util.Date;

public class ClienteUDPHora {

public static void main(String[] args) {

try {
DatagramSocket socketUDP = new DatagramSocket();
byte[] mensaje = args[0].getBytes();
InetAddress hostServidor = InetAddress.getByName(args[1]);
int puertoServidor = 5000;

//Construimos un datagrama para enviar el mensaje al Servidor
DatagramPacket peticion =
new DatagramPacket(mensaje, args[0].length(),
hostServidor, puertoServidor);
//Enviamos el datagrama
            SimpleDateFormat dateFormat=new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss]");// Establecer el formato de fecha
            System.out.println("Fecha y hora enviadas al servidor: "+dateFormat.format(new Date()));

socketUDP.send(peticion);


//Construimos el datagrama que contendra la respuesta
byte[] buffer = new byte[1000];
DatagramPacket respuesta = new DatagramPacket(buffer, buffer.length);

socketUDP.receive(respuesta);

//Enviamos la respuesta del servidor a la salida estandar
System.out.println("Respuesta: "+ new String(respuesta.getData()));


//Cerramos el soccket
socketUDP.close();


} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}


Codigo Servidor:

Código:
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class ServidorUDPHora {

public static void main(String[] args) {

try {
@SuppressWarnings("resource")
DatagramSocket socketUDP = new DatagramSocket(5000);
byte[] buffer = new byte[1000];

while(true) {
//Construimos el DatagramPacket para recibir peticiones
DatagramPacket peticion = new DatagramPacket(buffer, buffer.length);

//Leemos una peticion del DatagramSocket
socketUDP.receive(peticion);

System.out.println("Datagrama recibido del host: "+ peticion.getAddress());
System.out.println(" desde el puerto remoto: "+ peticion.getPort());

//Construimos el DatagramPacket para enviar la respuesta
DatagramPacket respuesta = new DatagramPacket(peticion.getData(), peticion.getLength(),
peticion.getAddress(), peticion.getPort());
           
SimpleDateFormat dateFormat=new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss]");// Establecer el formato de fecha
            System.out.println("Fecha y hora enviadas al cliente: "+dateFormat.format(new Date()));

//Enviamos la respuesta, que es un eco
socketUDP.send(respuesta);
}

} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

2  Programación / Java / Re: SOCKETS AYUDA URGENTE PORFAVOR!!!! en: 9 Mayo 2022, 12:10 pm
GRACIAS!!
3  Programación / Java / Re: SOCKETS AYUDA URGENTE PORFAVOR!!!! 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!
4  Programación / Java / Re: AYUDA CON Inversiones de 1 en: 8 Mayo 2022, 20:35 pm
Gracias!! :D, voy a probar lo que dices, para ver si me funciona
5  Programación / Java / SOCKETS AYUDA URGENTE PORFAVOR!!!! 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:
Código:
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
Código:
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();
}


}

}

6  Programación / Java / Re: SOCKETS SERVIDOR AYUDA PORFAVOR!! en: 5 Mayo 2022, 17:13 pm
Porfavor si alguien me puede ayudar!!
7  Programación / Java / Re: AYUDA CON Inversiones de 1 en: 5 Mayo 2022, 13:45 pm
Disculpa que no me haya expresado correctamente, tienes razon.
A inversiones de uno me refiero a: por medio del diseño del algoritmo recursivo Sort-and-Cout, usando un proceso Merge-and-Cout para hacer el Merge(eso ya esta implementado). Contar el numero de inversiones en dos listas ordenadas. A inversiones de 1 me refiero a el numero de veces por las que tiene que pasar ese numero hasta poder llegar a estar ordenado en la lista (como resultado me han dicho que me tiene que dar 545).
8  Programación / Java / SOCKETS SERVIDOR AYUDA PORFAVOR!! en: 3 Mayo 2022, 12:55 pm
Buenas tengo una duda y es que en un ejercicio a realizar con Sockets se me pide que el Servidor le envíe al Cliente la fecha y la hora actuales, lo he hecho pero me da fallos a la hora de ejecutar el servidor y no se porque, a continuacion paso el codigo del servidor y del cliente(es el que recibe la fecha y hora del servidor y debe de mostrar la siguiente informacion: Se han recibido <número de caracteres, incluidos espacios y saltos de línea> bytes
<Fecha y hora recibidas tal cual se recibieron del servidor de hora>. Yo para ello he hecho un bucle for que analice el  mensaje recibido del servidor para poder contar el numero de caracteres, los espacios y mostrarlos por pantalla), es la primera vez que trato con sockets y muchas veces no se si lo estoy haciendo bien o no :(.

SERVIDOR:
Código:
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 ServidorDiaHora {

@SuppressWarnings({ "resource", "unused" })
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"; //INDICO A QUIEN ME VOY A CONECTAR

DataInputStream in;
DataOutputStream out;
servidor = new ServerSocket(PUERTO);
//- Cuando se inicia el Socket Servidor:
//El servidor de DayTime ha arrancado: ServerSocket[ addr=<dirección>,localport=<número puerto local>]
System.out.println("El servidor de DayTime ha arrancado" ); //El servidor siempre estará atento a escuchas peticiones de los clientes
while(true) {
sc = servidor.accept();
//Cliente conectado desde <host> al puerto <número puerto local> desde el puerto <número puerto
//cliente>
System.out.println("Cliente conectado");//Aviso cliente conectado

//Creamos puentes de comunicacion
in = new DataInputStream(sc.getInputStream()); //inputStream(LEE): cliente -> servidor
out= new DataOutputStream(sc.getOutputStream()); //outputStream(ESCRIBE): servidor -> cliente

//Esto me servirá para enviar la fecha y la hora
Date fechaHoraActuales = new Date();
out.writeUTF("Fecha y Hora enviadas: "+ fechaHoraActuales); //Yo le escribo un mensaje


sc.close();//Cerramos el cliente.
System.out.println("Cliente desconectado");//Aviso de que esta desconectado






}

}

}



CLIENTE:
Código:
import java.io.DataInputStream;
import java.io.IOException;
import java.net.Socket;

public class CienteDiaHora {

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;

//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

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("Mayusculas("+n_mayus+"): "+mayus);
System.out.println("Minusculas("+n_minus+"): "+minus);
System.out.println("Numeros("+n_numeros+"): "+numeros);
System.out.println("Letras("+n_letras+"): "+letras);
System.out.println("Espacios: "+n_espacios);
//- Una vez ha recibido la información del servidor:
//Se han recibido <número de caracteres, incluidos espacios y saltos de línea> bytes
//<Fecha y hora recibidas tal cual se recibieron del servidor de hora>

sc.close();

}

}

9  Programación / Java / Re: AYUDA CON Inversiones de 1 en: 3 Mayo 2022, 12:32 pm
Por favor Ayuda!! :(
10  Programación / Bases de Datos / Re: CONSULTA en: 3 Mayo 2022, 12:31 pm
Muchísimas gracias por resolverme la duda, los libros seguro que me serán de grandísima ayuda!! :D :-*
Páginas: [1] 2 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines