Atom Blog

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

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




Como Crear Archivos en Java usando Netbeans 7.1


En este ejemplo se mostrara como crear un archivo para escribir datos almacenados en el programa y como leerlos al iniciar el mismo.

Para ello se hace uso de las clases ObjectInputStream y ObjectOutputStream para poder escribir y leer el archivo creado.

A continuación se mostrara un ejemplo sencillo que como hacer esto.

public class archivoJava() implements Serializable {
     public Persona personas[]; //vector es es de tipo serializable Persona que tiene los atributos
     private ObjectInputStream input; //objeto para leer el archivo
     private ObjectOutputStream output; //objeto para poder escribir en el archivo

     public archivoJava(Persona[] personas) {
          this.personas = personas;
     } //Fin del constructor
  
     //Método que permite guardar un archivo de texto
     public void guardarArchivo() {
          try {
              output = new ObjectOutputStream(new FileOutputStream("archivo.txt"));
              output.writeObject(getPersonas());
              output.close();
          }catch (Exception e) {
              JOptionPane.showMessageDialog(null, "Error al guardar archivo", "Mensaje",
              JOptionPane.WARNING_MESSAGE);                                                                                                 
         }
     } //Fin del método guardarArchivo

     //Método que permite leer un archivo de texto
     public void leerArchivo() {
      try{
            input=new ObjectInputStream(new FileInputStream("archivo.txt"));
            personas=(Persona[])input.readObject(); //personas es una clase serializable
            setnPersona(numPersonas());
            input.close();
      }catch (IOException e) {}
        catch (ClassNotFoundException e) {}
    }  //Fin del método leerArchivo   

} //Fin de la clase