# transport_cli A development tool for exercising the transport layer. Starts a framed-TCP server (which echoes received frames) or a client that connects and sends a sequence of test frames. --- ## Build From the repository root: ```sh make cli ``` The binary is placed in `build/cli/`. --- ## Usage ### Server mode Listen on a port and echo back every frame received: ```sh ./transport_cli server [max_connections] ``` Example: ```sh ./transport_cli server 8000 ``` Output (per received frame): ``` received frame: type=0x0001 len=8 ``` ### Client mode Connect to a server and send three test frames: ```sh ./transport_cli client ``` Example: ```sh ./transport_cli client 127.0.0.1 8000 ``` Each frame carries a fixed payload with a counter: ``` frame 0: payload = deadbeef 00000000 frame 1: payload = deadbeef 00000001 frame 2: payload = deadbeef 00000002 ``` --- ## Relationship to the Video Routing System `transport_cli` exercises the `transport` module, which provides the framed TCP stream used by all node-to-node communication. The frame header (message type + payload length) and single-write send are the building blocks for the protocol layer. See also: [`protocol_cli.md`](protocol_cli.md) for typed message-level testing.