MiCasa
Class ServidorCasa

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--MiCasa.ServidorCasa
All Implemented Interfaces:
java.lang.Runnable

public class ServidorCasa
extends java.lang.Thread

La clase ServidorCasa implementa la funcionalidad del servidor. Es capaz de recibir y procesar los comandos que le envía el cliente a través del socket, y los transforma en peticiones sobre la base de datos gracias a la clase BaseDatos.


Field Summary
private  java.io.BufferedReader br
          Filtro para poder leer del socket línea a línea.
private  int compraVivienda
          Variable con la vivienda que se desea comprar
private  java.io.DataOutputStream dos
          Filtro para poder escribir al socket líneas enteras.
private  int estado
          Variable con el estado del servidor.
private  java.net.Socket so
          Socket a través del cual llevar a cabo la comunicación.
private  java.lang.String usuario
          Nombre del usuario que ha entrado.
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
ServidorCasa(java.net.Socket s)
          Constructor del servidor.
 
Method Summary
private  void Desconectar()
          Cierra una conexión, tanto el socket como los filtros.
 void run()
          Lleva a cabo el proceso de recepción y tratamiento de comandos remotos.
private  void TratarCOMPRAR_VIVIENDA(java.util.StringTokenizer sTok)
          Trata el mensaje COMPRAR_VIVIENDA.
private  void TratarCONFIRMAR_COMPRA()
          Compra confirmada.
private  void TratarLISTADO_VIVIENDAS(java.util.StringTokenizer sTok)
          Trata el mensaje LISTADO_VIVIENDAS.
private  void TratarPASSWORD(java.util.StringTokenizer sTok)
          Trata el mensaje PASSWORD del usuario.
private  void TratarRECHAZAR_COMPRA()
          El usuario aborta la compra.
private  void TratarSALIR()
          Manda un mensaje de despedida antes de cerrar el grifo.
private  void TratarUSER(java.util.StringTokenizer sTok)
          Trata el mensaje USER del usuario.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

usuario

private java.lang.String usuario
Nombre del usuario que ha entrado.


so

private java.net.Socket so
Socket a través del cual llevar a cabo la comunicación.


br

private java.io.BufferedReader br
Filtro para poder leer del socket línea a línea.


dos

private java.io.DataOutputStream dos
Filtro para poder escribir al socket líneas enteras.


estado

private int estado
Variable con el estado del servidor.


compraVivienda

private int compraVivienda
Variable con la vivienda que se desea comprar

Constructor Detail

ServidorCasa

public ServidorCasa(java.net.Socket s)
Constructor del servidor.

Parameters:
s - Socket a través del cual se lleva la comunicación.
Method Detail

Desconectar

private void Desconectar()
                  throws java.io.IOException
Cierra una conexión, tanto el socket como los filtros.

java.io.IOException

run

public void run()
Lleva a cabo el proceso de recepción y tratamiento de comandos remotos.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

TratarUSER

private void TratarUSER(java.util.StringTokenizer sTok)
                 throws java.io.IOException
Trata el mensaje USER del usuario. Si el usuario ha proporcionado un nombre válido, se acepta y se cambia de estado.

java.io.IOException

TratarPASSWORD

private void TratarPASSWORD(java.util.StringTokenizer sTok)
                     throws java.io.IOException
Trata el mensaje PASSWORD del usuario. Aparte de verificar si se ha proporcionado una clave, hay que verificar en la base de datos si el usuario anteriormente introducido es válido con esta clave.

java.io.IOException

TratarLISTADO_VIVIENDAS

private void TratarLISTADO_VIVIENDAS(java.util.StringTokenizer sTok)
                              throws java.io.IOException
Trata el mensaje LISTADO_VIVIENDAS. Básicamente vuelca el resultado de una búsqueda en la base de datos, de todos los elementos o únicamente aquellos indicados por un patrón.

java.io.IOException

TratarCOMPRAR_VIVIENDA

private void TratarCOMPRAR_VIVIENDA(java.util.StringTokenizer sTok)
                             throws java.io.IOException
Trata el mensaje COMPRAR_VIVIENDA. El usuario introduce un código numérico según el código de la vivienda de la base de datos, y en caso de que se pueda comprar, cambia de estado esperando la confirmación tras enviar un mensaje de éxito.

java.io.IOException

TratarRECHAZAR_COMPRA

private void TratarRECHAZAR_COMPRA()
                            throws java.io.IOException
El usuario aborta la compra. Pues bueno, volvemos al estado anterior.

java.io.IOException

TratarCONFIRMAR_COMPRA

private void TratarCONFIRMAR_COMPRA()
                             throws java.io.IOException
Compra confirmada. Hay que modificar en la base de datos este dato.

java.io.IOException

TratarSALIR

private void TratarSALIR()
Manda un mensaje de despedida antes de cerrar el grifo.