A custom HTTP server built from scratch in C#, featuring a WinForms UI that allows users to specify a custom listening port and view request logs. This project also includes plans for rewriting the server using Golang for improved performance and scalability.
This project is an HTTP server built from scratch using C#. It includes a WinForms-based user interface that enables users to set a custom listening port and view incoming request logs. The goal is to create a simple and flexible HTTP server that can be easily managed through a graphical interface. The project is also planned to be rewritten in Golang to leverage its performance advantages.
- Customizable listening port
- Real-time request logging
- User-friendly WinForms UI
- Lightweight and efficient server design
- Backend: C#
- Frontend: WinForms
- Planned Rewrite: Golang
- Logging: Built-in logging mechanism
- Visual Studio with .NET Desktop Development workload
- .NET Core SDK
-
Clone the repository:
git clone https://github.com/yourusername/http-server.git cd http-server
-
Open the solution file (
HttpServer.sln
) in Visual Studio. -
Build the solution to restore dependencies and compile the project.
-
Run the application from Visual Studio.
- Launch the HTTP server application.
- In the WinForms UI, specify the desired listening port.
- Start the server to begin handling HTTP requests.
- View incoming request logs in real-time through the UI.
- Rewriting in Golang: The server will be rewritten using Golang to improve performance and scalability. This transition will leverage Go's concurrency model and efficient memory management.
- Additional Features: Enhancements such as SSL support, more detailed logging, and a RESTful API for managing server settings are planned.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature/YourFeature
). - Commit your changes (
git commit -m 'Add some feature'
). - Push to the branch (
git push origin feature/YourFeature
). - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.