Add readme
This commit is contained in:
@@ -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
|
||||||
|
<path>|<length>|<content>\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.
|
||||||
Reference in New Issue
Block a user