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