A simple client server utility that blocks until a message is received on a TCP/IP socket connection
Project description
wait-for-message
A simple client server utility that blocks until a message is received on a TCP/IP socket connection; useful for synchronizing interdependent networked jobs.
Installation
pip install wait-for-message
w4m
Usage
usage: w4m [-h] {send,wait} ...
A simple client server utility that blocks until a message is received on a TCP/IP socket connection
positional arguments:
{send,wait}
send send message to tcp/ip connection until acknowledged or maximum attempts
wait wait for message on tcp/ip connection until received or timeout
optional arguments:
-h, --help show this help message and exit
w4m send
send message to tcp/ip connection until acknowledged or maximum attempts
usage: w4m send [-h] --ip-address IP_ADDRESS --port-number PORT_NUMBER --message MESSAGE_TO_SEND [--delay DELAY] [--attempts MAX_ATTEMPTS]
optional arguments:
-h, --help show this help message and exit
--ip-address IP_ADDRESS
the ip address of the server
--port-number PORT_NUMBER
the port number the server is listening on
--message MESSAGE_TO_SEND
the message to send
--delay DELAY number of seconds to delay between retries; default 10
--attempts MAX_ATTEMPTS
maximum retry attempts; default 6
w4m wait
wait for message on tcp/ip connection until received or timeout
usage: w4m wait [-h] --port-number PORT_NUMBER --message MESSAGE_TO_WAIT_FOR [--timeout TIMEOUT]
optional arguments:
-h, --help show this help message and exit
--port-number PORT_NUMBER
the port number the server is listening on
--message MESSAGE_TO_WAIT_FOR
the message to wait for
--timeout TIMEOUT number of seconds to wait for message; default 900 (i.e. 15 minutes)
Example
wait
On a Linux machine, start tcp/ip socket listening on port 8080 and wait for message. Note the script blocks until the expected message is received. If the message is not received a timeout error will be thrown.
w4m wait --port-number 8080 --message 'ready to proceed'
send
On an other machine (this example we used a Windows machine), connect tcip/ip socket to the ip:port for the server and send several messages. Send will resend message until an acknowledgement is received. If no acknowledgement is received after max attempts a MaxAttemptsError is thrown.
w4m send --ip-address 192.168.1.199 --port-number 8080 --message "a message"
w4m send --ip-address 192.168.1.199 --port-number 8080 --message "another message"
w4m send --ip-address 192.168.1.199 --port-number 8080 --message "ready to proceed"
Development
Build the Docker image:
docker image build \
-t \
w4m:latest .
Run the Docker container:
docker container run \
--rm \
-it \
-v $PWD:/code \
-p:8080:8080 \
w4m:latest \
bash
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for wait_for_message-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32e8a76a71b7d3ddd5925cf7d3a6ade85f698d74f7c6319cdb2a6f542c4d0059 |
|
MD5 | 490bf2156e582c6d8925578f8de0c0b0 |
|
BLAKE2b-256 | 590e95c582c7c5d02e4fec68cddb08d450efb8acdb4fd47bcde7b6b0cc22e979 |