Colección de Proyectos de Programación en C
Una colección de proyectos de programación en C diseñados para que los principiantes aprendan y practiquen 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 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 servidor HTTP que cubre:- Programación de sockets
- Conceptos básicos del protocolo HTTP
- Servicio de archivos
- Comunicación de 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 personalizada de ping que cubre:- Protocolo ICMP
- Programación de sockets raw
- Diagnóstico de red
- Medición de tiempo
6. Tres en Raya
Una implementación clásica de juego que enseña:- Servidor de juego multijugador
- Programación de sockets
- 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
- Multihilos
- 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 sintáctico y evaluación de expresiones
- Generación de código ensamblador
- Fundamentos de 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 CMake
- README con instrucciones de compilación y uso
- Detalles de implementación
- Navega al directorio del proyecto
- Lee el archivo README.md del proyecto
- Sigue las instrucciones de compilación
- Ejecuta el programa según lo descrito
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 completo: The C Programming Language - Un recurso imprescindible para aprender los fundamentos y buenas prácticas de 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
- Progresar a Servidor HTTP y Sistema de Chat para redes más complejas
- Finalmente, explora Escáner de Puertos y Ping para conceptos avanzados de redes
Contribuciones
Siéntete libre de:
- 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 educativos.
Nota
Algunos proyectos relacionados con la red (Escáner de Puertos, Ping) requieren privilegios de root/administrador para ejecutarse debido al uso de sockets en crudo. Siempre use estas herramientas de manera responsable y solo en redes para las que tenga permiso de prueba.
--- Tranlated By Open Ai Tx | Last indexed: 2026-05-07 ---
