This project demonstrates a simple TCP server and client implemented in Go, using the Transport Layer Security (TLS) protocol for secure communication. The project is structured into multiple folders, including client, server, utility, structure, and tlsconfigurator, to maintain a clean and organized codebase.
- Server Implementation: The project provides a flexible server implementation with an interface, ServerInterface, defining methods like GetDns(), Start(), Read(conn net.Conn), and WriteFile(buffer *bytes.Buffer, fileExt string) error. This allows for easy customization and extension of the server's functionality.
- TLS Encryption: TLS is used to encrypt the communication between the server and client, ensuring data confidentiality and security.
- Client Implementation: The client is designed for simplicity, with a single main method, SendFile, responsible for sending files over the TCP connection.
- client: Contains the client-side code.
- server: Houses the server-side code.
- utility: Provides utility functions and helper methods.
- structure: Defines data structures and interfaces.
- tlsconfigurator: Contains TLS configuration related code.
To run the server, navigate to the server directory and execute the appropriate commands. Customize the server implementation as needed by implementing the ServerInterface methods in your chosen server module.
To use the client, navigate to the client directory and execute the SendFile command. You can modify this client to suit your specific use case if needed.
Clone this repository to your local machine. Customize the server and client modules to meet your project requirements. Build and run the server and client components as needed.
Daniele Carrozzino - [email protected]