A simple multithreaded HTTP server implemented in C. This server is capable of serving static files from a designated directory and handling multiple client connections concurrently. I certainly plan on improving this project, as I plan on using it for one of my other projects.
- Serve static files (HTML, CSS, JS from the
www/
directory). - Multithreaded to handle multiple clients simultaneously.
- Simple logging to track server activity.
root/
├── src/
│ ├── main.c
│ ├── server.c
│ └── client.c
├── include/
│ ├── server.h
│ └── client.h
├── www/
├── logs/
└──Makefile
- GCC or any compatible C compiler.
make
utility for building the project.
-
Clone the repository:
git clone https://github.com/zeusssz/sputnik-c.git cd my_http_server
-
Build the server:
make
-
Run the server:
make run
The server will start on port
8080
. You can change the port by editing therun
rule in theMakefile
. -
Access the server: Open a web browser and navigate to
http://localhost:8080
to see the served static files.
- Static Files: Place your static files (HTML, CSS, JavaScript, etc.) in the
www/
directory. - Logs: Server logs are stored in the
logs/
directory.
-
Remove binaries and object files:
make clean
-
Remove log files:
make clean-logs
Feel free to fork this repository, open issues, and submit pull requests. Contributions are greatly appreciated.