Un proyecto de chat cliente-servidor local básico.
Tabla de contenidos
El proyecto simpleChat consta de dos scripts de Python: uno para el cliente y otro para el servidor de un chat. El cliente se conecta al servidor utilizando sockets y permite a los usuarios enviar y recibir mensajes en una interfaz de línea de comandos. El servidor gestiona las conexiones de los clientes, almacena los mensajes en una base de datos SQLite y ofrece funcionalidades de control, como ver la lista de clientes conectados y enviar mensajes globales.
- Permite la comunicación bidireccional entre múltiples clientes y un servidor.
- Almacena los mensajes en una base de datos SQLite para persistencia.
- Ofrece funcionalidades de control, como ver la lista de clientes conectados y enviar mensajes globales desde el servidor.
└── simpleChat/
├── client.py
└── server.pyDescripción archivos
| Archivo | Resumen |
|---|---|
| cliente.py | ► El archivo el qual deberá ejecutar el usuario para actuar como client. |
| servidor.py | ► El archivo el qual se debe ejecutar primero para tener el servidor activo. |
Requisitos del sistema:
- Versión de Python testeada:
3.10.12
- Clona el repositorio de simpleChat tanto en el dispositivo servidor como cliente:
$ git clone https://github.com/cigital/simpleChat
- Cambia al directorio del proyecto:
$ cd simpleChat
Ejecuta el archivo del servidor desde el dispositivo que actuara como servidor, usando el siguiente comando:
$ python3 servidor.pyIntroduce los datos que te vaya pidiendo, como la adreça ip de destino al qual escuchar.
Desde en el dispositvo cliente ejecute el archivo de cliente, con:
$ python3 client.pyIntroduce los datos que te vaya pidiendo, como la adreça ip de destino i el puerto, del servidor.
También podemos pasar argumentos (IP y puertos) de la siguiente manera:
- miniServer.py:
$ python3 [nombreArchivo].py --ip [=ip_a_escuchar | ip_a_escuchar] --port [=puerto_a_escuchar | puerto_a_escuchar]
Las opciones que hay són:
- --ip: Especifica la dirección IP en la que el servidor estará escuchando conexiones. Puede proporcionarse tanto en formato de argumento de línea de comandos (--ip=127.0.0.1) como en formato de valor de argumento (--ip 127.0.0.1).
- --port: Define el puerto en el que el servidor estará escuchando conexiones. Al igual que --ip, puede proporcionarse tanto en formato de argumento de línea de comandos (--port=123456) como en formato de valor de argumento (--port 123456).
- ► Añadir funcionalidad de chat
- ► Añadir funcionalidad de enviar imágenes
- ► Encriptación básica del chat
En este momento, no estamos aceptando contribuciones adicionales. ¡Gracias por tu interés!
Este proyecto está protegido bajo la licencia MIT. Para obtener más detalles, consulte el archivo LICENSE.
A continuación tenemos páginas donde podemos profundizar mas para entender cómo funciona el codigo:
- Documentación Socketserver
- Documentación Socket
- Documentación SQLite3
- Documentación Threading
- Documentación Pickle