rds-gen(1) write data from a file to an RDS socket


rds-gen -words [-s source_address:source_port ] [-d destination_address:destination_port ] [-f input_file ] [-m message_size ] [-l total_bytes ] [-i interval ]

rds-sink -words [-s listen_address:listen_port ] [-f output_file ] [-i interval ]


The rds-gen and rds-sink utilities are used to stream data through RDS sockets. rds-gen reads data from a file descriptor and sends it as messages down an RDS socket. rds-sink receives messages from an RDS socket and writes it to a file descriptor.

The following options are shared between rds-gen and rds-sink:

-s address:port
Binds the RDS socket to the given address and port. rds-gen will send messages from this address and port. rds-sink will receive messages sent to this address and port.
-f file
rds-gen will read data from this file and rds-sink will write data to this file. If '-' is given as the filename then rds-gen will use standard input and rds-sink will use standard output.
-i interval_seconds
An iterative summary of the number and size of messages that are sent and received is written to standard error at this interval.

In addition, rds-gen supports the following options:

-d address:port
Messages are sent to this destination address and port. If this option is specified multiple times then the messages are sent to each destination address in a round-robin fashion.
-m message_size
Specifies the size of the messages that are sent down the RDS socket. The default message size is 4k. The message size must not be greater than the buffer size.
-l total_bytes
Specifies the number of bytes that will be sent out the socket before rds-gen exits. If this is not specified and rds-gen was given a source file then it will run until it gets EOF from the file. If no file was given and this option is not specified then rds-gen will send data indefinitely.


rds-gen on host src sends infinite data to rds-sink on dest who prints out the amount of data it receives every second.

$ rds-sink -s dest:22222 -i 1
$ rds-gen -s src:11111 -d dest:22222

Read 100M from /dev/zero on src and write it to /dev/null on dest, printing stats on both sides every minute.

$ rds-sink -s dest:22222 -f /dev/null -i 60
$ rds-gen -s src:11111 -f /dev/zero -d dest:22222 -i 60

Watch rds-gen write data as fast as it can into a local black hole because there is no bound receiving socket.

$ rds-gen -s src:11111 -d localhost:31337 -i 1