Collection de projets en langage C
Une collection de projets en langage C conçus pour les débutants afin d'apprendre et de pratiquer divers concepts de programmation, des algorithmes de base à la programmation réseau. Chaque projet est autonome et inclut sa propre documentation et son propre système de compilation.
Aperçu des projets
1. Implémentation SHA-512
Une implémentation de fonction de hachage cryptographique qui démontre :- Manipulation de bits
- Algorithmes complexes
- Gestion de la mémoire
- Opérations d'E/S sur fichiers
2. Serveur HTTP
Une implémentation basique d'un serveur HTTP qui couvre :- Programmation de sockets
- Bases du protocole HTTP
- Service de fichiers
- Communication réseau
3. Serveur-Client UDP
Un système de communication simple basé sur UDP qui enseigne :- Programmation de sockets UDP
- Architecture client-serveur
- Protocoles réseau
- Échange de messages
4. Scanner de ports
Un outil de diagnostic réseau qui démontre :- Programmation de sockets TCP
- Techniques de scan réseau
- Gestion des erreurs
- Analyse des arguments en ligne de commande
5. Implémentation Ping
Un utilitaire ping personnalisé qui couvre :- Protocole ICMP
- Programmation de sockets bruts
- Diagnostics réseau
- Mesure du temps
6. Morpion (Tic-Tac-Toe)
Une implémentation classique du jeu qui enseigne :- Serveur de jeu multijoueur
- Logique de jeu
- Gestion de l'entrée utilisateur
7. Système de chat
Une application de chat en temps réel qui démontre :- Programmation de sockets TCP
- Multi-threading
- Communication en temps réel
- Architecture client-serveur
8. Analyseur lexical
Un composant simple de front-end de compilateur qui démontre :- Tokenisation du code source
- Techniques d'analyse syntaxique
- Principes de conception de compilateur
- Manipulation de chaînes
9. Compilateur arithmétique
Un compilateur simple qui prend des expressions arithmétiques en entrée et génère un code proche de l'assembleur :- Analyse lexicale (tokenisation)
- Analyse et évaluation des expressions
- Génération de code assembleur
- Fondamentaux de la construction de compilateurs
10. Jeu d’Astéroïdes
Un jeu en terminal où vous contrôlez un vaisseau pour éviter des astéroïdes en chute :- Gestion de l’état du jeu
- Gestion des entrées utilisateur
- Graphiques en mode terminal
- Mécaniques de jeu en temps réel
- Détection de collisions simple
Démarrage
Chaque projet de ce dépôt est conçu pour être autonome et inclut :
- Code source
- Makefile ou configuration CMake
- README avec instructions de compilation et d’utilisation
- Détails d’implémentation
- Naviguez dans le répertoire du projet
- Lisez le README.md du projet
- Suivez les instructions de compilation
- Exécutez le programme comme indiqué
Prérequis
- Compilateur GCC (pour les projets C)
- Compilateur G++ (pour les projets C++)
- Utilitaire Make
- CMake (pour les projets C/C++)
- Connaissance de base de la programmation C/C++
- Pour les projets réseau : compréhension des concepts fondamentaux des réseaux
Livre recommandé
Pour débuter en programmation C, je recommande ce livre complet : The C Programming Language - Une ressource incontournable pour apprendre les bases et les bonnes pratiques du langage C.
Parcours d’apprentissage
Ces projets sont classés par ordre de complexité croissante :
- Commencez avec le Tic-Tac-Toe pour les concepts de programmation de base
- Passez au SHA-512 pour l’implémentation d’algorithmes
- Essayez le serveur-client UDP pour le réseau de base
- Progressez vers le serveur HTTP et le système de chat pour des réseaux plus complexes
- Enfin, explorez le scanner de ports et le ping pour les concepts réseau avancés
Contribution
N’hésitez pas à :
- Signaler des bugs
- Suggérer des améliorations
- Ajouter de nouvelles fonctionnalités
- Créer de nouveaux projets
- Améliorer la documentation
Licence
Ce projet est open source et disponible à des fins d’apprentissage.
Remarque
Certains projets liés au réseau (Scanner de ports, Ping) nécessitent des privilèges root/administrateur pour fonctionner en raison de l’utilisation de sockets brutes. Utilisez toujours ces outils de manière responsable et uniquement sur des réseaux sur lesquels vous avez l’autorisation de tester.
--- Tranlated By Open Ai Tx | Last indexed: 2025-07-22 ---
