A continuación vamos a ver un ejemplo en el que se calcula el tiempo de trasmisión de datos entre una aplicación Cliente y Servidor. Para ello, el servidor le va a enviar al cliente un mensaje con el tiempo del sistema en milisegundos y el cliente cuando reciba el mensaje calculará la diferencia entre el tiempo de su sistema y el del mensaje.
Servidor.java
import java.io.* ;
import java.net.* ;
import java.util.Date;
class Servidor {
static final int Puerto=2000;
public Servidor( ) {
try {
// Inicio el servidor en el puerto
ServerSocket sServidor = new ServerSocket(Puerto);
System.out.println("Escucho el puerto " + Puerto );
// Se conecta un cliente
Socket sCliente = sServidor.accept(); // Crea objeto
System.out.println("Cliente conectado");
// Creo los flujos de entrada y salida
DataInputStream flujo_entrada = new DataInputStream( sCliente.getInputStream());
DataOutputStream flujo_salida= new DataOutputStream(sCliente.getOutputStream());
// CUERPO DEL ALGORITMO
long tiempo1=(new Date()).getTime();
flujo_salida.writeUTF(Long.toString(tiempo1));
// Se cierra la conexión
sCliente.close();
System.out.println("Cliente desconectado");
} catch( Exception e ) {
System.out.println( e.getMessage() );
}
}
public static void main( String[] arg ) {
new Servidor();
}
}
Cliente.java
import java.io.*;
import java.net.*;
import java.util.Date;
class Cliente {
static final String HOST = "localhost";
static final int Puerto=2000;
public Cliente( ) {
String datos=new String();
String num_cliente=new String();
// para leer del teclado
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
try{
// Me conecto al puerto
Socket sCliente = new Socket( HOST , Puerto );
// Creo los flujos de entrada y salida
DataInputStream flujo_entrada = new DataInputStream(sCliente.getInputStream());
DataOutputStream flujo_salida= new DataOutputStream(sCliente.getOutputStream());
// CUERPO DEL ALGORITMO
datos=flujo_entrada.readUTF();
long tiempo1=Long.valueOf(datos);
long tiempo2=(new Date()).getTime();
System.out.println("\n El tiempo es:"+(tiempo2-tiempo1));
// Se cierra la conexión
sCliente.close();
} catch( Exception e ) {
System.out.println( e.getMessage() );
}
}
public static void main( String[] arg ) {
new Cliente();
}
}