I get the following error message, when I try the router example wiht python on Windows (Windows 8):
Traceback (most recent call last):
File "router.py", line 43, in <module>
client.bind("ipc://routing.ipc")
File "socket.pyx", line 432, in zmq.core.socket.Socket.bind (zmq\core\socket.c:3870)
File "checkrc.pxd", line 23, in zmq.core.checkrc._check_rc (zmq\core\socket.c:5712)
zmq.error.ZMQError: Protocol not supported
So I suppose that the IPC transport channel for zeromq is not suported on Windows (at least Windows 8). Is this true?
ZeroMQ supports common messaging patterns (pub/sub, request/reply, client/server and others) over a variety of transports (TCP, in-process, inter-process, multicast, WebSocket and more), making inter-process messaging as simple as inter-thread messaging.
ZeroMQ sockets carry messages, like UDP, rather than a stream of bytes as TCP does. A ZeroMQ message is length-specified binary data.
In general, IPC (inter process communication) can refer to a number of different protocols, including ZMQ. ZMQ is an IPC mechanism. There are other lower level mechanisms such as PIPEs and UDP sockets.
ZeroMQ patterns are implemented by pairs of sockets with matching types. The built-in core ZeroMQ patterns are: Request-reply, which connects a set of clients to a set of services. This is a remote procedure call and task distribution pattern.
The question How to use Zeromq's inproc and ipc transports? mentions that IPC relies on POSIX named pipes, which Windows doesn't support.
You should be able to use TCP on a Loopback Interface instead without trouble.
It is not supported on Windows, but TCP over localhost gives much the same performance as IPC, on Linux and OS/X and I'd just use that on Windows too.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With