-
Notifications
You must be signed in to change notification settings - Fork 21
/
params.json
1 lines (1 loc) · 4.97 KB
/
params.json
1
{"name":"zmqc","body":"zmqc is a small but powerful command-line interface to [ØMQ][zmq]. It allows\r\nyou to create a socket of a given type, bind or connect it to multiple\r\naddresses, set options on it, and receive or send messages over it using\r\nstandard I/O, in the shell or in scripts. It's useful for debugging and\r\nexperimenting with most possible network topologies.\r\n\r\n [zmq]: http://www.zeromq.org/\r\n\r\n\r\n## Usage\r\n\r\n zmqc [-h] [-v] [-0] [-r | -w] (-b | -c) SOCK_TYPE \\\r\n [-o SOCK_OPT=VALUE...] address [address ...]\r\n\r\n\r\n### Mode\r\n\r\n<dl>\r\n <p>\r\n Whether to read from or write to the socket. For PUB/SUB sockets, this\r\n option is invalid since the behavior will always be write and read\r\n respectively. For REQ/REP sockets, zmqc will alternate between reading and\r\n writing as part of the request/response cycle.\r\n </p>\r\n <dt>-r, --read</dt>\r\n <dd><p>Read messages from the socket onto stdout.</p></dd>\r\n\r\n <dt>-w, --write</dt>\r\n <dd><p>Write messages from stdin to the socket.</p></dd>\r\n</dl>\r\n\r\n### Behavior\r\n\r\n<dl>\r\n <dt>-b, --bind</dt>\r\n <dd><p>Bind to the specified address(es).</p></dd>\r\n <dt>-c, --connect</dt>\r\n <dd><p>Connect to the specified address(es).</p></dd>\r\n</dl>\r\n\r\n<p></p>\r\n\r\n### Socket Parameters\r\n\r\n<dl>\r\n <dt>SOCK_TYPE</dt>\r\n <dd><p>\r\n Which type of socket to create. Must be one of `PUSH`, `PULL`, `PUB`, `SUB`, `REQ`, `REP`\r\n or `PAIR`. See `man zmq_socket` for an explanation of the different types.\r\n `DEALER` and `ROUTER` sockets are currently unsupported.\r\n </p></dd>\r\n <dt>-o SOCK_OPT=VALUE, --option SOCK_OPT=VALUE</dt>\r\n <dd><p>\r\n Socket option names and values to set on the created socket. Consult `man\r\n zmq_setsockopt` for a comprehensive list of options. Note that you can\r\n safely omit the `ZMQ_` prefix from the option name. If the created socket\r\n is of type `SUB`, and no `SUBSCRIBE` options are given, the socket will\r\n automatically be subscribed to everything.\r\n </p></dd>\r\n <dt>address</dt>\r\n <dd><p>\r\n One or more addresses to bind/connect to. Must be in full ZMQ format (e.g.\r\n `tcp://<host>:<port>`)\r\n </p></dd>\r\n</dt>\r\n\r\n<p></p>\r\n\r\n## Examples\r\n\r\n zmqc -rc SUB 'tcp://127.0.0.1:5000'\r\n\r\nSubscribe to `tcp://127.0.0.1:5000`, reading messages from it and printing them\r\nto the console. This will subscribe to all messages by default (you don't need\r\nto set an empty `SUBSCRIBE` option). Alternatively:\r\n\r\n zmqc -rc SUB -o SUBSCRIBE='com.organization.' 'tcp://127.0.0.1:5000'\r\n\r\nThis will subscribe to all messages starting with `com.organization.`.\r\n\r\n* * * *\r\n\r\n ls | zmqc -wb PUSH 'tcp://*:4000'\r\n\r\nSend the name of every file in the current directory as a message from a PUSH\r\nsocket bound to port 4000 on all interfaces. Don't forget to quote the address\r\nto avoid glob expansion.\r\n\r\n* * * *\r\n\r\n zmqc -rc PULL 'tcp://127.0.0.1:5202' | \\\r\n tee $TTY | \\\r\n zmqc -wc PUSH 'tcp://127.0.0.1:5404'\r\n\r\nRead messages coming from a PUSH socket bound to port 5202 (note that we're\r\nconnecting with a PULL socket), echo them to the active console, and forward\r\nthem to a PULL socket bound to port 5404 (so we're connecting with a PUSH).\r\n\r\n* * * *\r\n\r\n zmqc -n 10 -0rb PULL 'tcp://*:4123' | \\\r\n xargs -0 grep 'pattern'\r\n\r\nBind to a PULL socket on port 4123, receive 10 messages from the socket\r\n(with each message representing a filename), and grep the files for\r\n`'pattern'`. The `-0` option means messages will be NULL-delimited rather\r\nthan separated by newlines, so that filenames with spaces in them are not\r\nconsidered two separate arguments by xargs.\r\n\r\n* * * *\r\n\r\n echo \"hello\" | zmqc -c REQ 'tcp://127.0.0.1:4000'\r\n\r\nSend the string `hello` through a REQ socket connected to localhost on port\r\n4000, print whatever you get back, and finish. In this way, REQ sockets can\r\nbe used for a rudimentary form of RPC in shell scripts.\r\n\r\n* * * *\r\n\r\n coproc zmqc -b REP 'tcp://*:4000'\r\n tr -u '[a-z]' '[A-Z]' <&p >&p &\r\n echo \"hello\" | zmqc -c REQ 'tcp://127.0.0.1:4000'\r\n\r\nFirst, start a REP socket listening on port 4000. The `coproc` shell command\r\nruns this as a shell coprocess, which allows us to run the next line. `tr`\r\nwill read its input from the REP socket's output, translate all lowercase\r\ncharacters to uppercase, and send them back to the REP socket's input (the `-u`\r\noption enables unbuffered streaming). This, again, is run in the background.\r\nFinally, connect a REQ socket to that REP socket and send the string `hello`\r\nthrough it: you should just see the string `HELLO` printed on stdout.\r\n\r\n## Installation\r\n\r\n pip install zmqc\r\n\r\nzmqc is released under the [Unlicense](http://unlicense.org/).","tagline":"netcat for ØMQ.","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."}