Crear un servidor de chat simple con Netcat
En este paso, aprenderás cómo crear un servidor de chat más robusto utilizando netcat con opciones adicionales. Este ejemplo demostrará cómo se puede utilizar netcat para conexiones más persistentes.
Primero, entendamos algunas opciones adicionales de netcat que serán útiles:
-k: Esta opción permite que el servidor siga escuchando después de que un cliente se desconecte, lo que permite múltiples conexiones con el tiempo.
-v: Esto habilita la salida detallada (verbose), proporcionando más información sobre la conexión.
Creemos un servidor de chat que siga funcionando incluso después de que un cliente se desconecte. En tu primera terminal:
cd ~/project
nc -l -k -v 7777
Deberías ver una salida que indique que netcat está escuchando:
Listening on 0.0.0.0 7777
Este servidor seguirá funcionando y aceptará nuevas conexiones incluso después de que un cliente se desconecte.
Ahora, en tu segunda terminal, conéctate a este servidor:
cd ~/project
nc localhost 7777
Deberías ver un mensaje en la primera terminal que indique una nueva conexión, similar a:
Connection from 127.0.0.1 port 7777 [tcp/*] accepted
Ahora puedes intercambiar mensajes entre las terminales como antes. Escribe un mensaje en una terminal y presiona Enter para enviarlo a la otra terminal.
Para probar la persistencia del servidor, desconecta el cliente presionando Ctrl+C en la segunda terminal. Luego, vuelve a conectarte utilizando el mismo comando:
nc localhost 7777
Deberías poder conectarte de nuevo y continuar chateando, lo que demuestra que el servidor permanece activo entre las conexiones de los clientes.
Para guardar un registro de tu conversación de chat, puedes modificar el comando del servidor para guardar todos los mensajes entrantes en un archivo. Presiona Ctrl+C para detener el servidor actual, luego inicia uno nuevo con redirección de salida:
cd ~/project
nc -l -k -v 7777 | tee chat_log.txt
Este comando utiliza la utilidad tee para mostrar los mensajes entrantes en la pantalla y guardarlos en el archivo chat_log.txt al mismo tiempo.
Conéctate desde la segunda terminal de nuevo y envía algunos mensajes. Después de intercambiar algunos mensajes, desconecta el cliente (presiona Ctrl+C en la segunda terminal) y luego revisa el archivo de registro del chat:
cat ~/project/chat_log.txt
Deberías ver los mensajes que enviaste desde la terminal del cliente.
Para detener el servidor, presiona Ctrl+C en la primera terminal.
Este paso demostró cómo crear un servidor de chat más robusto utilizando netcat y cómo registrar la comunicación, lo cual puede ser útil para mantener registros o para fines de depuración.