chat/README.md

1.9 KiB

Servidor de Chat en Python (PSP)

VIDEO FUNCIONALIDAD https://youtu.be/OMbzm-YJ1Zg

VIDEO EXPLICATIVO CÓDIGO https://youtu.be/EmwJFCWFms0

Este proyecto implementa un servidor de chat multihilo utilizando sockets TCP en Python. Es parte del módulo de Programación de Servicios y Procesos (PSP).

Características

  • Multihilo: Maneja múltiples clientes simultáneamente utilizando threading.
  • Broadcast: Reenvía los mensajes recibidos de un cliente a todos los demás conectados.
  • Protocolo Simple:
    • Solicita el nombre al cliente al conectarse (NAME?).
    • Soporta comandos básicos de administración.
  • Logs: Muestra actividad del servidor (conexiones, mensajes) en la consola o interfaz configurada.

Requisitos

  • Python 3.x

Instalación

No se requiere instalación de librerías externas, ya que utiliza la librería estándar de Python (socket, threading).

  1. Clona el repositorio o descarga el archivo chat_server.py.

Uso

Para iniciar el servidor, ejecuta el script desde la terminal:

python3 chat_server.py

Por defecto, el servidor escuchará en:

  • Host: 0.0.0.0 (todas las interfaces)
  • Puerto: 5050

Puedes modificar las variables DEFAULT_HOST y DEFAULT_PORT en el código si necesitas cambiar la configuración predeterminada.

Protocolo de Conexión

  1. El cliente se conecta al socket del servidor.
  2. El servidor envía la cadena NAME?\n.
  3. El cliente debe responder con su nombre de usuario seguido de un salto de línea (p.ej., MiUsuario\n).
  4. Una vez identificado, cualquier mensaje enviado por el cliente será retransmitido a todos los demás usuarios con el formato [Nombre]: Mensaje.

Estructura del Proyecto

  • chat_server.py: Contiene la lógica principal del servidor (clase ChatServer y ClientConn).

Notas

Este servidor está diseñado con fines educativos para demostrar el uso de Sockets y Hilos en Python.