Colección de Proyectos en C
Una colección de proyectos de programación en C diseñados para principiantes que desean aprender y practicar varios conceptos de programación, desde algoritmos básicos hasta programación de redes. Cada proyecto es autónomo e incluye su propia documentación y sistema de construcción.
Resumen de Proyectos
1. Implementación de SHA-512
Una implementación de función hash criptográfica que demuestra:- Manipulación de bits
- Algoritmos complejos
- Gestión de memoria
- Operaciones de entrada/salida de archivos
2. Servidor HTTP
Una implementación básica de un servidor HTTP que cubre:- Programación de sockets
- Fundamentos del protocolo HTTP
- Servir archivos
- Comunicación en red
3. Servidor-Cliente UDP
Un sistema de comunicación simple basado en UDP que enseña:- Programación de sockets UDP
- Arquitectura cliente-servidor
- Protocolos de red
- Intercambio de mensajes
4. Escáner de Puertos
Una herramienta de diagnóstico de red que demuestra:- Programación de sockets TCP
- Técnicas de escaneo de red
- Manejo de errores
- Análisis de argumentos de línea de comandos
5. Implementación de Ping
Una utilidad ping personalizada que cubre:- Protocolo ICMP
- Programación de sockets sin procesar (raw)
- Diagnóstico de red
- Medición de tiempo
6. Tres en Raya
Una implementación del clásico juego que enseña:- Servidor de juego multijugador
- Lógica del juego
- Manejo de entrada del usuario
7. Sistema de Chat
Una aplicación de chat en tiempo real que demuestra:- Programación de sockets TCP
- Multihilo
- Comunicación en tiempo real
- Arquitectura cliente-servidor
8. Analizador Léxico
Un componente simple de front-end de compilador que demuestra:- Tokenización del código fuente
- Técnicas de análisis sintáctico
- Principios de diseño de compiladores
- Manipulación de cadenas
9. Compilador Aritmético
Un compilador simple que toma expresiones aritméticas como entrada y genera código similar a ensamblador:- Análisis léxico (tokenización)
- Análisis y evaluación de expresiones
- Generación de código ensamblador
- Fundamentos de la construcción de compiladores
10. Juego de Asteroides
Un juego basado en terminal donde controlas una nave para evitar asteroides que caen:- Gestión del estado del juego
- Manejo de entrada del usuario
- Gráficos basados en terminal
- Mecánicas de juego en tiempo real
- Detección simple de colisiones
Comenzando
Cada proyecto en este repositorio está diseñado para ser autónomo e incluye:
- Código fuente
- Makefile o configuración de CMake
- README con instrucciones de compilación y uso
- Detalles de implementación
- Navega al directorio del proyecto
- Lee el README.md del proyecto
- Sigue las instrucciones de compilación
- Ejecuta el programa como se describe
Requisitos previos
- Compilador GCC (para proyectos en C)
- Compilador G++ (para proyectos en C++)
- Utilidad Make
- CMake (para proyectos en C/C++)
- Conocimientos básicos de programación en C/C++
- Para proyectos de red: comprensión de conceptos básicos de redes
Libro recomendado
Para comenzar con la programación en C, recomiendo este libro integral: The C Programming Language - Un recurso imprescindible para aprender los fundamentos y buenas prácticas de la programación en C.
Ruta de aprendizaje
Estos proyectos están organizados en orden de complejidad creciente:
- Comienza con Tic-Tac-Toe para conceptos básicos de programación
- Avanza a SHA-512 para implementación de algoritmos
- Prueba el Servidor-Cliente UDP para redes básicas
- Progresa al Servidor HTTP y Sistema de Chat para redes más complejas
- Finalmente, explora el Escáner de Puertos y Ping para conceptos avanzados de redes
Contribuir
No dudes en:
- Reportar errores
- Sugerir mejoras
- Añadir nuevas funcionalidades
- Crear nuevos proyectos
- Mejorar la documentación
Licencia
Este proyecto es de código abierto y está disponible para fines de aprendizaje.
Nota
Algunos proyectos relacionados con redes (Escáner de Puertos, Ping) requieren privilegios de root/administrador para ejecutarse debido al uso de sockets raw. Siempre utiliza estas herramientas de manera responsable y solo en redes para las que tengas permiso de prueba.
--- Tranlated By Open Ai Tx | Last indexed: 2025-07-22 ---
