Buenas tardes amigos del foro, he estado leyendo acerca de los sockets y quiero hacer lo siguiente:
Tengo implementado una clase Servidor y otra clase Cliente, el socket se crea perfectamente y existe la comunicacion, lo que quiero hacer es, saber desde el servidor si la conexion del cliente esta abierta o si ya se cerro, estuve leyendo por ahi y pues dicen que no se puede saber eso, me gustaria que me ayudaran por favor o si no en vez de utilizar sockets que otra cosa me podria servir, Muchas gracias
tengo implementado el ejemplo básico de sockets:
import java.io.*;
import java.net.*;
class Cliente {
static final String HOST = "localhost";
static final int PUERTO=5000;
public Cliente( ) {
try{
Socket skCliente = new Socket( HOST , Puerto );
InputStream aux = skCliente.getInputStream();
DataInputStream flujo = new DataInputStream( aux );
System.out.println( flujo.readUTF() );
skCliente.close();
} catch( Exception e ) {
System.out.println( e.getMessage() );
}
}
public static void main( String[] arg ) {
new Cliente();
}
}
----------Servidor----------
import java.io.* ;
import java.net.* ;
class Servidor {
static final int PUERTO=5000;
public Servidor( ) {
try {
ServerSocket skServidor = new ServerSocket( PUERTO );
System.out.println("Escucho el puerto " + PUERTO );
for ( int numCli = 0; numCli < 3; numCli++; ) {
Socket skCliente = skServidor.accept(); // Crea objeto
System.out.println("Sirvo al cliente " + numCli);
OutputStream aux = skCliente.getOutputStream();
DataOutputStream flujo= new DataOutputStream( aux );
flujo.writeUTF( "Hola cliente " + numCli );
skCliente.close();
}
System.out.println("Demasiados clientes por hoy");
} catch( Exception e ) {
System.out.println( e.getMessage() );
}
}
public static void main( String[] arg ) {
new Servidor();
}
}
en este caso el cliente llega pero se cierra, me gustaria que el cliente quedara abierto, y cuando se cierre, en el servidor aparezca algo como "el cliente "+numcliente+" ha cerrado" o algo asi
(disculpemen, pero soy nuevo y no se citar codigo)