Atom Blog

Mostrando las entradas con la etiqueta OutputStream. Mostrar todas las entradas
Mostrando las entradas con la etiqueta OutputStream. Mostrar todas las entradas

Serializacion de Objetos


Como ya sabemos Java cuenta con un mecanismo que permite escribir o leer un objeto completo de un archivo, conocido como: serializacion de objetos.

Un objeto serializado es un objeto que se presenta como una secuencia de bytes, la cual incluye datos del objeto, asi como la informacion acerca del tipo de objeto y los tipos de datos almacenados en el mismo.

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