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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  SOCKETS UDP Ayuda!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: SOCKETS UDP Ayuda!!  (Leído 1,773 veces)
Pitagoras

Desconectado Desconectado

Mensajes: 29


Ver Perfil
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();
}

}

}



En línea

K-YreX


Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: SOCKETS UDP Ayuda!!
« Respuesta #1 en: 15 Mayo 2022, 15:55 pm »

Citar
El cliente y el servidor se deben de enviar mutuamente ( intercambiando mensajes ) la hora actual en el momento de ejecucion

Qué significa:
Citar
He hecho el codigo del intercambio de hora pero me da error.
:huh: :huh:

En vez de "me da error" sería mejor que explicaras con más detalle el problema que tienes...
- Te da error de compilación o de ejecución? Qué error te muestra exactamente?
- El resultado que muestra no es el que esperas? Qué resultado esperas y qué te muestra el programa?
- ...

PD: El código que muestras no intercambia la fecha/hora actual. Está intercambiando el primer argumento de la ejecución args[0], por lo que...
¿Con qué argumentos estás ejecutando el Cliente?

Y qué quieres decir con esto:
Citar
tambien deben de imprimir el número segundos transcurridos en el intercambio de mensajes
:huh: :huh:

Qué tienes que imprimir y dónde?
- El tiempo que tarda el Servidor desde que arranca hasta que le llega un paquete?
- El tiempo que tarda el Servidor desde que arranca hasta que envía un paquete?
- El tiempo que tarda el Servidor desde que recibe un paquete hasta que envía otro?
- El tiempo que tarda el Cliente desde que arranca hasta que envía un paquete?
- El tiempo que...
- ...

Como puedes ver, puedes medir el tiempo de TODO lo que quieras. Entonces tendrás que especificar más en lo que necesitas.
De todas formas y de forma genérica, te contestaré lo mismo que la vez anterior:
Citar
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


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con sockets
PHP
[KMT] 2 1,755 Último mensaje 30 Abril 2007, 02:10 am
por дٳŦ٭
Ayuda con sockets
.NET (C#, VB.NET, ASP)
nik00 3 2,759 Último mensaje 11 Marzo 2009, 12:08 pm
por Krackwar ™
Ayuda con sockets
Java
delirio 0 1,358 Último mensaje 24 Agosto 2011, 05:15 am
por delirio
ayuda con sockets
Programación C/C++
ankora45 4 2,089 Último mensaje 13 Octubre 2012, 14:02 pm
por ankora45
[Ayuda] [Envio de paquetes] [Python] ayuda con los raw sockets
Scripting
pelela400 1 1,816 Último mensaje 22 Marzo 2020, 21:58 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines