zmq_vmci - 0MQ transport over virtual machine communicatios interface (VMCI) sockets
Contents
Addressing
A 0MQ endpoint is a string consisting of a transport:// followed by an address. The transport specifies
the underlying protocol to use. The address specifies the transport-specific address to connect to.
For the VMCI transport, the transport is vmci, and the meaning of the address part is defined below.
Bindingasocket
When binding a socket to a local address using zmq_bind() with the vmci transport, the endpoint shall be
interpreted as an interface followed by a colon and the TCP port number to use.
An interface may be specified by either of the following:
• The wild-card *, meaning all available interfaces.
• An integer returned by VMCISock_GetLocalCID or @ (ZeroMQ will call VMCISock_GetLocalCID internally).
The port may be specified by:
• A numeric value, usually above 1024 on POSIX systems.
• The wild-card *, meaning a system-assigned ephemeral port.
Unbindingwild-cardaddressfromasocket
When wild-card * endpoint was used in zmq_bind(), the caller should use real endpoint obtained from the
ZMQ_LAST_ENDPOINT socket option to unbind this endpoint from a socket using zmq_unbind().
Connectingasocket
When connecting a socket to a peer address using zmq_connect() with the vmci transport, the endpoint
shall be interpreted as a peeraddress followed by a colon and the port number to use.
A peeraddress must be a CID of the peer.
Examples
Assigningalocaladdresstoasocket.
// VMCI port 5555 on all available interfaces
rc = zmq_bind(socket, "vmci://*:5555");
assert (rc == 0);
// VMCI port 5555 on the local loop-back interface on all platforms
cid = VMCISock_GetLocalCID();
sprintf(endpoint, "vmci://%d:5555", cid);
rc = zmq_bind(socket, endpoint);
assert (rc == 0);
Connectingasocket.
// Connecting using a CID
sprintf(endpoint, "vmci://%d:5555", cid);
rc = zmq_connect(socket, endpoint);
assert (rc == 0);
Name
zmq_vmci - 0MQ transport over virtual machine communicatios interface (VMCI) sockets
See Also
zmq_bind(3) zmq_connect(3) zmq_inproc(7) zmq_tcp(7) zmq_pgm(7) zmq_vmci(7) zmq_getsockopt(3) zmq(7)
Synopsis
The VMCI transport passes messages between VMware virtual machines running on the same host, between
virtual machine and the host and within virtual machines (inter-process transport like ipc).
Note
Communication between a virtual machine and the host is not supported on Mac OS X 10.9 and above.
