From 7b78ed9d604a5d78af65eefaa456e98854874b3d Mon Sep 17 00:00:00 2001 From: Ian Barber Date: Tue, 12 Jun 2012 15:46:26 +0100 Subject: [PATCH 1/2] Update bind and connect documentation for clarity Based on discussion with Steve O on the list, make the difference between bind and connect usage more clear, and add a note reflecting the fact that inproc must have bind before connect to reinforce the information in zmq_inproc. --- doc/zmq_bind.txt | 12 +++++++----- doc/zmq_connect.txt | 17 +++++++++++------ 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/doc/zmq_bind.txt b/doc/zmq_bind.txt index 1d7c2ff4..58bc4d80 100644 --- a/doc/zmq_bind.txt +++ b/doc/zmq_bind.txt @@ -29,11 +29,13 @@ The following transports are defined: 'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7] 'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7] -With the exception of 'ZMQ_PAIR' sockets, a single socket may be connected to -multiple endpoints using _zmq_connect()_, while simultaneously accepting -incoming connections from multiple endpoints bound to the socket using -_zmq_bind()_. Refer to linkzmq:zmq_socket[3] for a description of the exact -semantics involved when connecting or binding a socket to multiple endpoints. +ZeroMQ sockets support one-to-many and many-to-one semantics. With the exception +of 'ZMQ_PAIR' sockets every ZeroMQ socket type supports being bound with +_zmq_bind()_ as a singular endpoint or connecting with _zmq_connect()_ as one +of many endpoints. This allows combinations such as 1 ZMQ_REP to 100 ZMQ_REP and +100 ZMQ_REQ to 1 ZMQ_REP socket connections. Refer to linkzmq:zmq_socket[3] for +a description of the exact semantics involved when connecting or binding a socket +to multiple endpoints. RETURN VALUE diff --git a/doc/zmq_connect.txt b/doc/zmq_connect.txt index 6ec56b01..eb5af872 100644 --- a/doc/zmq_connect.txt +++ b/doc/zmq_connect.txt @@ -29,15 +29,20 @@ The following transports are defined: 'tcp':: unicast transport using TCP, see linkzmq:zmq_tcp[7] 'pgm', 'epgm':: reliable multicast transport using PGM, see linkzmq:zmq_pgm[7] -With the exception of 'ZMQ_PAIR' sockets, a single socket may be connected to -multiple endpoints using _zmq_connect()_, while simultaneously accepting -incoming connections from multiple endpoints bound to the socket using -_zmq_bind()_. Refer to linkzmq:zmq_socket[3] for a description of the exact -semantics involved when connecting or binding a socket to multiple endpoints. +ZeroMQ sockets support one-to-many and many-to-one semantics. With the exception +of 'ZMQ_PAIR' sockets every ZeroMQ socket type supports being bound with +_zmq_bind()_ as a singular endpoint or connecting with _zmq_connect()_ as one +of many endpoints. This allows combinations such as 1 ZMQ_REP to 100 ZMQ_REP and +100 ZMQ_REQ to 1 ZMQ_REP socket connections. Refer to linkzmq:zmq_socket[3] for +a description of the exact semantics involved when connecting or binding a socket +to multiple endpoints. NOTE: The connection will not be performed immediately but as needed by 0MQ. Thus a successful invocation of _zmq_connect()_ does not indicate that a -physical connection was or can actually be established. +physical connection was or can actually be established. Because of this, for most +socket types the order in which a listening socket is bound and a connecting socket +is connected does not matter. However, for inproc:// scheme sockets, the zmq_bind() +must be executed before any sockets zmq_connect() to that endpoint RETURN VALUE From 704b952274b7bfe2952f564d6d81dff1f279a453 Mon Sep 17 00:00:00 2001 From: Ian Barber Date: Tue, 12 Jun 2012 15:49:18 +0100 Subject: [PATCH 2/2] Add reference to the inproc documentation The previous note in connect introduced but did not elaborate on the requirement to bind before connect in inproc. As that discussion is in detail in the inproc docs link to there. --- doc/zmq_connect.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/zmq_connect.txt b/doc/zmq_connect.txt index eb5af872..d9c37cd4 100644 --- a/doc/zmq_connect.txt +++ b/doc/zmq_connect.txt @@ -42,7 +42,8 @@ Thus a successful invocation of _zmq_connect()_ does not indicate that a physical connection was or can actually be established. Because of this, for most socket types the order in which a listening socket is bound and a connecting socket is connected does not matter. However, for inproc:// scheme sockets, the zmq_bind() -must be executed before any sockets zmq_connect() to that endpoint +must be executed before any sockets zmq_connect() to that endpoint. Refer to +linkzmq:zmq_inproc[7] for more details. RETURN VALUE