Atom Blog

Servidor con Sockets en Java


A continuación se explicara como elebarorar un Servidor a través de Sockets.
Para establecer la conexion se necesitan seguir 5 pasos.

Paso 1
Para empezar debemos crear un objeto ServerSocket:

ServerSocket servidor = new ServerSocket(numPuerto, numClientes);

numPuerto>>especifa el puerto TCP disponible.
numClientes>>especifica el numero maximo de clientes que se pueden conectar.

El numero de puerto es utilizado por los clientes para localizar al servidor.
El constructor establece el puerto en donde el servidor espera las conexiones de los clientes.

Paso 2
Para administrar las conexiones del cliente es necesario un objeto Socket.
El Servidor escucha indefinidamente esperando a que un cliente trate de conectarse.
Para escuchar la conexion de un cliente se debe llamar al metodo:

Socket conexion  = servidor.accept();

Devuelve un objeto Socket al establecer la conexion con el cliente.
El objeto Socket permite al servidor interactuar con el cliente, estas interacciones ocurren por otro puerto, no por el establecido en el paso 1; lo que permite al servidor aceptar otra conexion del cliente con subprocesamiento multiple.

Paso 3
Establecer los objetos OutputStream e InputStream que permite al servidor comunicarse con el cliente.
El servidor envia informacion al cliente mediante un objeto OutputStream y recibe informacion mediante InputStream.

Los objetos flujo pueden utilizarse para enviar o recibir bytes individuales o secuencias de bytes mediante los metodos write de OutputStream y read de InputStream.
Se puede enviar o recibir valores de tipo primitivo u objetos Serializables.

ObjectInputStream input = new ObjectInputStream(conexion.getInputStream);
ObjectOutputStream output = new ObjectOutputStream(conexion.getOutputStream);  

Cualquier cosa que escriba el servidor en el objeto ObjectOutputStream se enviara mediante el objeto OutputStream y estara disponible en el objeto InputStream del cliente y viceversa.

Paso 4
Procesamiento: El servidor y el cliente se comunican mediante los objetos OutputStream e InputStream.

Paso 5
Al completarse la transmision, el servidor cierra la conexion invocando al metodo close en los flujos.

output.close()
input.close();
conexion.close();




No hay comentarios.:

Publicar un comentario