A file transfer system utilizing gRPC with both server and client implementations, built on .NET 8.
This project demonstrates a file transfer system using gRPC, focusing on efficient and reliable communication between clients and the server. Key features include:
- gRPC Communication: Utilizes gRPC for high-performance, cross-platform communication.
- Asynchronous File Transfer: Supports asynchronous streaming for file uploads and downloads.
- Scalability: Designed to handle multiple clients concurrently.
The main solution file that includes the following projects:
- Server: Hosts the gRPC service and handles incoming file transfer requests.
- Client: Connects to the gRPC server to upload or download files.
- .NET 8.0 SDK installed on your system.
- Clone the repository:
git clone https://github.com/enesmetek/grpc-filetransfer.git
- Navigate into the project directory:
cd grpc-filetransfer - Restore dependencies:
dotnet restore
- Build the solution:
dotnet build
-
Navigate to the server project directory:
cd src/Server -
Run the server:
dotnet run
The server will start and listen for incoming gRPC connections.
-
Open a new terminal window.
-
Navigate to the client project directory:
cd src/Client -
Run the client with the desired operation:
dotnet run -- [upload/download] [file_path]
Replace
[upload/download]with the desired operation and[file_path]with the path to the file you wish to upload or download.
This project is licensed under the MIT License.
Contributions are welcome! Feel free to submit a pull request or open an issue.
For any questions or issues, please reach out via GitHub Issues or email me at [[email protected]].
If you found this project useful, consider giving it a star on GitHub! 😊