Back to rankings

TrisH0x2A/project-box

C

C projects: algorithms, games, and networking

algorithmsccli-gameprojectssocket-programming
Star Growth
Stars
2.2k
Forks
195
Weekly Growth
Issues
2
5001k1.5k2k
Apr 26May 26Jun 26Jul 26
README

C Programming Projects Collection

Buy Me A Coffee

A collection of C programming projects designed for beginners to learn and practice various programming concepts, from basic algorithms to network programming. Each project is self-contained and includes its own documentation and build system.

Projects Overview

1. SHA-512 Implementation

A cryptographic hash function implementation that demonstrates:

  • Bit manipulation
  • Complex algorithms
  • Memory management
  • File I/O operations

2. HTTP Server

A basic HTTP server implementation that covers:

  • Socket programming
  • HTTP protocol basics
  • File serving
  • Network communication

3. UDP Server-Client

A simple UDP-based communication system that teaches:

  • UDP socket programming
  • Client-server architecture
  • Network protocols
  • Message exchange

4. Port Scanner

A network diagnostic tool that demonstrates:

  • TCP socket programming
  • Network scanning techniques
  • Error handling
  • Command-line argument parsing

5. Ping Implementation

A custom ping utility that covers:

  • ICMP protocol
  • Raw socket programming
  • Network diagnostics
  • Time measurement

6. Tic-Tac-Toe

A classic game implementation that teaches:

  • Multiplayer game server -Socket programming
  • Game logic
  • User input handling

7. Chat System

A real-time chat application that demonstrates:

  • TCP socket programming
  • Multi-threading
  • Real-time communication
  • Client-server architecture

8. Lexical Analyzer

A simple compiler front-end component that demonstrates:

  • Tokenization of source code
  • Parsing techniques
  • Compiler design principles
  • String manipulation

9. Arithmetic Compiler

A simple compiler that takes arithmetic expressions as input and generates assembly-like code:

  • Lexical analysis (tokenization)
  • Parsing and evaluation of expressions
  • Assembly code generation
  • Compiler construction fundamentals

10. Asteroid Game

A terminal-based game where you control a ship to avoid falling asteroids:

  • Game state management
  • User input handling
  • Terminal-based graphics
  • Real-time gameplay mechanics
  • Simple collision detection

Getting Started

Each project in this repository is designed to be self-contained and includes:

  • Source code
  • Makefile or CMake configuration
  • README with build and usage instructions
  • Implementation details

To get started with any project:

  1. Navigate to the project directory
  2. Read the project's README.md
  3. Follow the build instructions
  4. Run the program as described

Prerequisites

  • GCC compiler (for C projects)
  • G++ compiler (for C++ projects)
  • Make utility
  • CMake (for C/C++ projects)
  • Basic understanding of C/C++ programming
  • For network projects: understanding of basic networking concepts

To get started with C programming, I recommend this comprehensive book: The C Programming Language - A must-have resource for learning C programming fundamentals and best practices.

Learning Path

These projects are arranged in order of increasing complexity:

  1. Start with Tic-Tac-Toe for basic programming concepts
  2. Move to SHA-512 for algorithm implementation
  3. Try the UDP Server-Client for basic networking
  4. Progress to HTTP Server and Chat System for more complex networking
  5. Finally, explore Port Scanner and Ping for advanced networking concepts

Contributing

Feel free to:

  • Report bugs
  • Suggest improvements
  • Add new features
  • Create new projects
  • Improve documentation

License

This project is open source and available for learning purposes.

Note

Some network-related projects (Port Scanner, Ping) require root/administrator privileges to run due to the use of raw sockets. Always use these tools responsibly and only on networks you have permission to test.

Related repositories
jwasham/coding-interview-university

A complete computer science study plan to become a software engineer.

Creative Commons Attribution Share Alike 4.0 Internationalcomputer-scienceinterview
356.8k84.4k
trekhleb/javascript-algorithms

📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings

JavaScriptnpmMIT Licensejavascriptalgorithms
196.3k31k
yangshun/tech-interview-handbook

Curated coding interview preparation materials for busy software engineers

TypeScriptnpmMIT Licenseinterview-questionscoding-interviews
techinterviewhandbook.org
141.1k16.7k
labuladong/fucking-algorithm

Crack LeetCode, not only how, but also why.

Markdownleetcodealgorithms
labuladong.online
134.9k23.6k
krahets/hello-algo

《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现

JavaMavenOtheralgorithmsdata-structures
hello-algo.com
128.7k15.3k
Developer-Y/cs-video-courses

List of Computer Science courses with video lectures.

computer-sciencealgorithms
82.6k11.4k
TheAlgorithms/Java

All Algorithms implemented in Java

JavaMavenMIT Licensejavaalgorithms
66k21.2k
kdn251/interviews

Everything you need to know to get the job.

JavaMavenMIT Licensejavainterview
youtube.com/channel/UCKvwPt6BifPP54yzH99ff1g
65.1k12.9k
azl397985856/leetcode

LeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)

JavaScriptnpmOtheralgorithmleetcode
leetcode-solution-leetcode-pp.gitbook.io/leetcode-solution/
55.8k9.4k
doocs/leetcode

🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解

JavaMavenCreative Commons Attribution Share Alike 4.0 Internationalalgorithmscpp
leetcode.doocs.org
36.3k9.4k
geekxh/hello-algorithm

🌍 针对小白的算法训练 | 包括四部分:①.大厂面经 ②.力扣图解 ③.千本开源电子书 ④.百张技术思维导图(项目花了上百小时,希望可以点 star 支持,🌹感谢~)推荐免费ChatGPT使用网站

JavaMavenalgorithmsinterview-questions
lintcode.com/chat-gpt
36.1k6.4k
TheAlgorithms/JavaScript

Algorithms and Data Structures implemented in JavaScript for beginners, following best practices.

JavaScriptnpmGNU General Public License v3.0algorithmalgorithm-challenges
the-algorithms.com/language/javascript
34.2k5.9k