You are on page 1of 2

Chat en Java usando Hilos y Sockets

Con la finalidad de aplicar nuestros conocimientos acerca de Modelos de Lenguajes de Programacion, hemos desarrollado un Chat. La aplicacin llamada JavaChat ha sido implementada en Java por ser este un lenguaje orientado a objetos,ademas por la facilidad para implementar Sockets e Hilos ,tcnicas empleadas en este aplicacin..

JavaChat:Idea del Proyecto


La implementacion del programa servidor sigue las siguientes ideas: 1. 2. 3. 4. 5. Se inicia el servidor El servidor se mantiene escuchando cualquier peticin de un cliente para conectarse. El servidor acepta al cliente. El servidor lanza un hilo de comunicacin con el cliente. Por el hilo se envan y reciben mensajes a travs del servidor entre todos los clientes. 6. Si el cliente cierra la comunicacin el hilo se rompe y se corta la comunicacin con ese cliente. La implementacion del programa Cliente sigue las siguientes ideas: 1. 2. 3. 4. Se inicia el cliente El cliente lanza una peticin al servidor para conectarse El servidor asigna un hilo al cliente al ser aceptado. El cliente enva y recibe mensajes por el hilo hacia todos o hacia algun usuario especfico, usando al servidor como puente para las comunicaciones.

Para esto se ha empleado objetos de la clase ServerSocket y Socket para el servidor y cliente respectivamente que permiten la conexion entre cliente y servidor mientras que los Hilos sirven para hacer que el servidor se mantenga escuchando y no interrumpa su proceso mientras los clientes se comunican a traves de mensajes. A continuacion unas definiciones: Sockets: Los sockets no son ms que puntos o mecanismos de comunicacin entre procesos que permiten que un proceso hable ( emita o reciba informacin ) con otro proceso incluso estando estos procesos en distintas mquinas. Esta caracterstica de interconectividad entre mquinas hace que el concepto de socket nos sirva de gran utilidad. Hilos: Un hilo es un flujo de ejecucin de cdigo, y mediante hilos, podemos hacer que nuestros

programas aparentemente realicen varias tareas al mismo tiempo.Por ejemplo, un cdigo podra interaccionar con el usuario mientras realiza tareas de segundo plano de gran consumo de tiempo.Los hilos separados realmente no se ejecutan al mismo tiempo(a menos que se tenga una maquina multiprocesador); en realidad cada hilo obtiene secuencias de tiempo del mismo procesador.

Ayuda para la aplicacin:Siga los siguientes pasos 1. 2. 3. 4. 5. 6. 7. 8. Inicie el IDE Netbeans Abra el proyecto Ejecute la el archivo servidor.java Ejecute cuantas veces desee el archivo Cliente.java Ingrese "localhost" si los clientes se ejecutan sobre una misma PC. Ingrese un nick, con el que ser identificado. En la ventana que le aparece Ud. podr conversar con todos a la vez. Para conversar en privado con un solo contacto, elija en la lista de contactos a un usuario y luego pulse el botn privado. 9. A continuacin le aparecer una ventana mas pequea en la que podr comunicarse solo con su contacto. 10. Para salir simplemente cierre la ventana y el cliente se desconectar automticamente.

You might also like