From 80d002414c01a202c95506e23e47d322f9c926d6 Mon Sep 17 00:00:00 2001 From: Ano-sys Date: Sun, 22 Feb 2026 22:23:05 +0100 Subject: [PATCH] Add readme --- README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..8e4597b --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# DirectoryScanSender + +`DirectoryScanSender` is a .NET application that scans a directory recursively and sends eligible files to a TCP server using a simple delimiter-based protocol. + +It is the sender counterpart to [`DirectoryScanReceiver`](../DirectoryScanReceiver), and both projects can work together out of the box with the current default settings. + +## Companion Project + +- Receiver counterpart: [`DirectoryScanReceiver`](../DirectoryScanReceiver) +- Shared default TCP port: `7156` + +## Shared Protocol + +Both projects use the same message format: + +```text +||\r\n\r\n +``` + +- `path`: file path string sent by the sender +- `length`: declared payload length +- `content`: payload content + +Multiple messages can be sent over the same TCP connection, each terminated by `\r\n\r\n`. + +## Features + +- Recursively scans directories +- Sends files over a single TCP connection +- Skips files larger than `100000` bytes +- Continues running even if individual files fail to read or send +- Uses parallel directory traversal + +## Default Behavior + +- Target directory: the current user's `Documents` folder +- Connection target: host `localhost`, port `7156` +- File size limit: files smaller than `100000` bytes + +## Requirements + +- .NET SDK with support for `net10.0` +- Network access to the configured TCP server + +## Build and Run + +From the repository root: + +```bash +dotnet build +dotnet run --project DirectoryScanSender +``` + +## Compatibility Notes + +- The sender is intended to be used with [`DirectoryScanReceiver`](../DirectoryScanReceiver) or another receiver that follows the same message format. +- The current defaults (`localhost:7156`) match the local `DirectoryScanReceiver` project. +- The transfer uses plain TCP and does not include authentication or encryption. +- Console output is used for basic status and error messages. +- Configuration values (host, port, scan path) are defined in `DirectoryScanSender/Program.cs`. + +## License and Disclaimer + +This project may be used, copied, modified, and shared freely. + +It is provided `as is`, without warranty of any kind. The author is not liable for any damages or losses resulting from its use.