2010-02-10 16:18:46 +01:00
|
|
|
zmq_setsockopt(3)
|
|
|
|
=================
|
|
|
|
|
|
|
|
|
|
|
|
NAME
|
|
|
|
----
|
|
|
|
|
2010-03-09 18:47:31 +01:00
|
|
|
zmq_setsockopt - set 0MQ socket options
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
SYNOPSIS
|
|
|
|
--------
|
2010-03-09 18:47:31 +01:00
|
|
|
*int zmq_setsockopt (void '*socket', int 'option_name', const void '*option_value', size_t 'option_len');*
|
2010-02-10 16:18:46 +01:00
|
|
|
|
2012-03-15 13:06:44 +01:00
|
|
|
Caution: All options, with the exception of ZMQ_SUBSCRIBE, ZMQ_UNSUBSCRIBE,
|
2013-06-20 18:30:30 +02:00
|
|
|
ZMQ_LINGER, ZMQ_ROUTER_MANDATORY, ZMQ_PROBE_ROUTER, ZMQ_XPUB_VERBOSE only
|
|
|
|
take effect for subsequent socket bind/connects. Specifically, security
|
|
|
|
options take effect for subsequent binds/connects and can be changed at any
|
|
|
|
time to affect subsequent binds and/or connects.
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
-----------
|
2010-03-09 18:47:31 +01:00
|
|
|
The _zmq_setsockopt()_ function shall set the option specified by the
|
|
|
|
'option_name' argument to the value pointed to by the 'option_value' argument
|
|
|
|
for the 0MQ socket pointed to by the 'socket' argument. The 'option_len'
|
|
|
|
argument is the size of the option value in bytes.
|
|
|
|
|
2010-05-31 12:53:40 +02:00
|
|
|
The following socket options can be set with the _zmq_setsockopt()_ function:
|
2010-03-09 18:47:31 +01:00
|
|
|
|
|
|
|
|
2011-03-24 16:47:33 +01:00
|
|
|
ZMQ_SNDHWM: Set high water mark for outbound messages
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_SNDHWM' option shall set the high water mark for outbound messages on
|
|
|
|
the specified 'socket'. The high water mark is a hard limit on the maximum
|
2012-11-19 08:32:58 +01:00
|
|
|
number of outstanding messages 0MQ shall queue in memory for any single peer
|
2013-03-17 11:30:49 +01:00
|
|
|
that the specified 'socket' is communicating with. A value of zero means no
|
|
|
|
limit.
|
2010-06-02 18:36:34 +02:00
|
|
|
|
|
|
|
If this limit has been reached the socket shall enter an exceptional state and
|
|
|
|
depending on the socket type, 0MQ shall take appropriate action such as
|
|
|
|
blocking or dropping sent messages. Refer to the individual socket descriptions
|
|
|
|
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
|
|
|
type.
|
2010-03-09 18:47:31 +01:00
|
|
|
|
2012-11-19 08:32:58 +01:00
|
|
|
NOTE: 0MQ does not guarantee that the socket will accept as many as ZMQ_SNDHWM
|
|
|
|
messages, and the actual limit may be as much as 60-70% lower depending on the
|
|
|
|
flow of messages on the socket.
|
2012-11-19 02:20:56 +01:00
|
|
|
|
2011-03-24 16:47:33 +01:00
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: messages
|
2011-10-06 13:12:49 +02:00
|
|
|
Default value:: 1000
|
2011-03-24 16:47:33 +01:00
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_RCVHWM: Set high water mark for inbound messages
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_RCVHWM' option shall set the high water mark for inbound messages on
|
|
|
|
the specified 'socket'. The high water mark is a hard limit on the maximum
|
|
|
|
number of outstanding messages 0MQ shall queue in memory for any single peer
|
2013-03-17 11:30:49 +01:00
|
|
|
that the specified 'socket' is communicating with. A value of zero means no
|
|
|
|
limit.
|
2011-03-24 16:47:33 +01:00
|
|
|
|
|
|
|
If this limit has been reached the socket shall enter an exceptional state and
|
|
|
|
depending on the socket type, 0MQ shall take appropriate action such as
|
|
|
|
blocking or dropping sent messages. Refer to the individual socket descriptions
|
|
|
|
in linkzmq:zmq_socket[3] for details on the exact action taken for each socket
|
|
|
|
type.
|
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2011-03-24 15:43:03 +01:00
|
|
|
Option value type:: int
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: messages
|
2011-10-06 13:12:49 +02:00
|
|
|
Default value:: 1000
|
2010-03-09 18:47:31 +01:00
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_AFFINITY: Set I/O thread affinity
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2010-05-31 12:53:40 +02:00
|
|
|
The 'ZMQ_AFFINITY' option shall set the I/O thread affinity for newly created
|
|
|
|
connections on the specified 'socket'.
|
2010-03-09 18:47:31 +01:00
|
|
|
|
2010-05-28 00:49:13 +02:00
|
|
|
Affinity determines which threads from the 0MQ I/O thread pool associated with
|
|
|
|
the socket's _context_ shall handle newly created connections. A value of zero
|
|
|
|
specifies no affinity, meaning that work shall be distributed fairly among all
|
|
|
|
0MQ I/O threads in the thread pool. For non-zero values, the lowest bit
|
|
|
|
corresponds to thread 1, second lowest bit to thread 2 and so on. For example,
|
|
|
|
a value of 3 specifies that subsequent connections on 'socket' shall be handled
|
|
|
|
exclusively by I/O threads 1 and 2.
|
2010-03-09 18:47:31 +01:00
|
|
|
|
|
|
|
See also linkzmq:zmq_init[3] for details on allocating the number of I/O
|
|
|
|
threads for a specific _context_.
|
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2010-08-11 17:00:12 +02:00
|
|
|
Option value type:: uint64_t
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: N/A (bitmap)
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: N/A
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_SUBSCRIBE: Establish message filter
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_SUBSCRIBE' option shall establish a new message filter on a 'ZMQ_SUB'
|
|
|
|
socket. Newly created 'ZMQ_SUB' sockets shall filter out all incoming messages,
|
|
|
|
therefore you should call this option to establish an initial message filter.
|
|
|
|
|
|
|
|
An empty 'option_value' of length zero shall subscribe to all incoming
|
|
|
|
messages. A non-empty 'option_value' shall subscribe to all messages beginning
|
2010-11-04 21:21:01 +01:00
|
|
|
with the specified prefix. Multiple filters may be attached to a single
|
2010-03-09 18:47:31 +01:00
|
|
|
'ZMQ_SUB' socket, in which case a message shall be accepted if it matches at
|
|
|
|
least one filter.
|
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2010-03-10 12:19:39 +01:00
|
|
|
Option value type:: binary data
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: N/A
|
|
|
|
Applicable socket types:: ZMQ_SUB
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_UNSUBSCRIBE: Remove message filter
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_UNSUBSCRIBE' option shall remove an existing message filter on a
|
|
|
|
'ZMQ_SUB' socket. The filter specified must match an existing filter previously
|
|
|
|
established with the 'ZMQ_SUBSCRIBE' option. If the socket has several
|
|
|
|
instances of the same filter attached the 'ZMQ_UNSUBSCRIBE' option shall remove
|
|
|
|
only one instance, leaving the rest in place and functional.
|
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2010-03-10 12:19:39 +01:00
|
|
|
Option value type:: binary data
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: N/A
|
|
|
|
Applicable socket types:: ZMQ_SUB
|
|
|
|
|
|
|
|
|
2011-11-02 14:33:58 +01:00
|
|
|
ZMQ_IDENTITY: Set socket identity
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_IDENTITY' option shall set the identity of the specified 'socket'.
|
|
|
|
Socket identity is used only by request/reply pattern. Namely, it can be used
|
|
|
|
in tandem with ROUTER socket to route messages to the peer with specific
|
|
|
|
identity.
|
|
|
|
|
|
|
|
Identity should be at least one byte and at most 255 bytes long. Identities
|
|
|
|
starting with binary zero are reserved for use by 0MQ infrastructure.
|
|
|
|
|
2012-03-23 23:32:26 +01:00
|
|
|
If two peers use the same identity when connecting to a third peer, the
|
|
|
|
results shall be undefined.
|
|
|
|
|
2011-11-02 14:33:58 +01:00
|
|
|
[horizontal]
|
|
|
|
Option value type:: binary data
|
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: NULL
|
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
2010-03-09 18:47:31 +01:00
|
|
|
ZMQ_RATE: Set multicast data rate
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_RATE' option shall set the maximum send or receive data rate for
|
2010-03-10 12:19:39 +01:00
|
|
|
multicast transports such as linkzmq:zmq_pgm[7] using the specified 'socket'.
|
2010-03-09 18:47:31 +01:00
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2011-03-24 15:18:20 +01:00
|
|
|
Option value type:: int
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: kilobits per second
|
|
|
|
Default value:: 100
|
|
|
|
Applicable socket types:: all, when using multicast transports
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_RECOVERY_IVL: Set multicast recovery interval
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_RECOVERY_IVL' option shall set the recovery interval for multicast
|
2010-05-31 12:53:40 +02:00
|
|
|
transports using the specified 'socket'. The recovery interval determines the
|
2011-03-24 14:36:40 +01:00
|
|
|
maximum time in milliseconds that a receiver can be absent from a multicast
|
|
|
|
group before unrecoverable data loss will occur.
|
2010-12-09 21:42:58 +01:00
|
|
|
|
|
|
|
CAUTION: Exercise care when setting large recovery intervals as the data
|
|
|
|
needed for recovery will be held in memory. For example, a 1 minute recovery
|
|
|
|
interval at a data rate of 1Gbps requires a 7GB in-memory buffer.
|
|
|
|
|
|
|
|
[horizontal]
|
2011-03-24 15:18:20 +01:00
|
|
|
Option value type:: int
|
2010-12-09 21:42:58 +01:00
|
|
|
Option value unit:: milliseconds
|
2011-03-24 14:36:40 +01:00
|
|
|
Default value:: 10000
|
2010-12-09 21:42:58 +01:00
|
|
|
Applicable socket types:: all, when using multicast transports
|
|
|
|
|
2010-03-09 18:47:31 +01:00
|
|
|
ZMQ_SNDBUF: Set kernel transmit buffer size
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_SNDBUF' option shall set the underlying kernel transmit buffer size
|
2010-05-31 12:53:40 +02:00
|
|
|
for the 'socket' to the specified size in bytes. A value of zero means leave
|
|
|
|
the OS default unchanged. For details please refer to your operating system
|
2010-03-09 18:47:31 +01:00
|
|
|
documentation for the 'SO_SNDBUF' socket option.
|
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2011-03-24 14:48:50 +01:00
|
|
|
Option value type:: int
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: bytes
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_RCVBUF: Set kernel receive buffer size
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_RCVBUF' option shall set the underlying kernel receive buffer size for
|
2010-05-31 12:53:40 +02:00
|
|
|
the 'socket' to the specified size in bytes. A value of zero means leave the
|
|
|
|
OS default unchanged. For details refer to your operating system documentation
|
|
|
|
for the 'SO_RCVBUF' socket option.
|
2010-03-09 18:47:31 +01:00
|
|
|
|
2010-06-03 14:15:05 +02:00
|
|
|
[horizontal]
|
2011-03-24 14:48:50 +01:00
|
|
|
Option value type:: int
|
2010-03-09 18:47:31 +01:00
|
|
|
Option value unit:: bytes
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: all
|
2009-12-10 09:47:24 +01:00
|
|
|
|
2010-02-10 16:18:46 +01:00
|
|
|
|
2010-10-16 10:53:29 +02:00
|
|
|
ZMQ_LINGER: Set linger period for socket shutdown
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2010-12-01 10:57:37 +01:00
|
|
|
The 'ZMQ_LINGER' option shall set the linger period for the specified 'socket'.
|
|
|
|
The linger period determines how long pending messages which have yet to be
|
|
|
|
sent to a peer shall linger in memory after a socket is closed with
|
|
|
|
linkzmq:zmq_close[3], and further affects the termination of the socket's
|
|
|
|
context with linkzmq:zmq_term[3]. The following outlines the different
|
|
|
|
behaviours:
|
|
|
|
|
|
|
|
* The default value of '-1' specifies an infinite linger period. Pending
|
|
|
|
messages shall not be discarded after a call to _zmq_close()_; attempting to
|
|
|
|
terminate the socket's context with _zmq_term()_ shall block until all
|
|
|
|
pending messages have been sent to a peer.
|
|
|
|
|
|
|
|
* The value of '0' specifies no linger period. Pending messages shall be
|
|
|
|
discarded immediately when the socket is closed with _zmq_close()_.
|
|
|
|
|
|
|
|
* Positive values specify an upper bound for the linger period in milliseconds.
|
|
|
|
Pending messages shall not be discarded after a call to _zmq_close()_;
|
|
|
|
attempting to terminate the socket's context with _zmq_term()_ shall block
|
|
|
|
until either all pending messages have been sent to a peer, or the linger
|
|
|
|
period expires, after which any pending messages shall be discarded.
|
2010-10-16 10:53:29 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: milliseconds
|
2010-12-01 10:57:37 +01:00
|
|
|
Default value:: -1 (infinite)
|
2010-10-16 10:53:29 +02:00
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
2010-12-01 10:57:37 +01:00
|
|
|
ZMQ_RECONNECT_IVL: Set reconnection interval
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2011-01-26 07:01:06 +01:00
|
|
|
The 'ZMQ_RECONNECT_IVL' option shall set the initial reconnection interval for
|
|
|
|
the specified 'socket'. The reconnection interval is the period 0MQ
|
|
|
|
shall wait between attempts to reconnect disconnected peers when using
|
2012-03-20 09:22:27 +01:00
|
|
|
connection-oriented transports. The value -1 means no reconnection.
|
2010-12-01 10:57:37 +01:00
|
|
|
|
|
|
|
NOTE: The reconnection interval may be randomized by 0MQ to prevent
|
|
|
|
reconnection storms in topologies with a large number of peers per socket.
|
2010-10-17 09:54:12 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: milliseconds
|
|
|
|
Default value:: 100
|
2010-12-01 10:57:37 +01:00
|
|
|
Applicable socket types:: all, only for connection-oriented transports
|
2010-10-17 09:54:12 +02:00
|
|
|
|
|
|
|
|
2011-01-26 07:01:06 +01:00
|
|
|
ZMQ_RECONNECT_IVL_MAX: Set maximum reconnection interval
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_RECONNECT_IVL_MAX' option shall set the maximum reconnection interval
|
|
|
|
for the specified 'socket'. This is the maximum period 0MQ shall wait between
|
|
|
|
attempts to reconnect. On each reconnect attempt, the previous interval shall be
|
|
|
|
doubled untill ZMQ_RECONNECT_IVL_MAX is reached. This allows for exponential
|
|
|
|
backoff strategy. Default value means no exponential backoff is performed and
|
|
|
|
reconnect interval calculations are only based on ZMQ_RECONNECT_IVL.
|
|
|
|
|
|
|
|
NOTE: Values less than ZMQ_RECONNECT_IVL will be ignored.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: milliseconds
|
|
|
|
Default value:: 0 (only use ZMQ_RECONNECT_IVL)
|
|
|
|
Applicable socket types:: all, only for connection-oriented transports
|
|
|
|
|
|
|
|
|
2010-12-01 10:57:37 +01:00
|
|
|
ZMQ_BACKLOG: Set maximum length of the queue of outstanding connections
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
The 'ZMQ_BACKLOG' option shall set the maximum length of the queue of
|
|
|
|
outstanding peer connections for the specified 'socket'; this only applies to
|
|
|
|
connection-oriented transports. For details refer to your operating system
|
|
|
|
documentation for the 'listen' function.
|
2010-10-17 10:23:58 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: connections
|
|
|
|
Default value:: 100
|
2010-12-01 10:57:37 +01:00
|
|
|
Applicable socket types:: all, only for connection-oriented transports.
|
2010-10-17 10:23:58 +02:00
|
|
|
|
2011-06-12 15:24:08 +02:00
|
|
|
|
2011-03-02 09:00:36 +01:00
|
|
|
ZMQ_MAXMSGSIZE: Maximum acceptable inbound message size
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Limits the size of the inbound message. If a peer sends a message larger than
|
|
|
|
ZMQ_MAXMSGSIZE it is disconnected. Value of -1 means 'no limit'.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int64_t
|
|
|
|
Option value unit:: bytes
|
|
|
|
Default value:: -1
|
|
|
|
Applicable socket types:: all
|
|
|
|
|
2011-06-12 15:24:08 +02:00
|
|
|
|
2011-05-15 18:25:43 +02:00
|
|
|
ZMQ_MULTICAST_HOPS: Maximum network hops for multicast packets
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the time-to-live field in every multicast packet sent from this socket.
|
|
|
|
The default is 1 which means that the multicast packets don't leave the local
|
|
|
|
network.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: network hops
|
|
|
|
Default value:: 1
|
|
|
|
Applicable socket types:: all, when using multicast transports
|
2010-10-17 10:23:58 +02:00
|
|
|
|
2011-06-12 15:24:08 +02:00
|
|
|
|
2011-06-17 12:22:02 +02:00
|
|
|
ZMQ_RCVTIMEO: Maximum time before a recv operation returns with EAGAIN
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the timeout for receive operation on the socket. If the value is `0`,
|
|
|
|
_zmq_recv(3)_ will return immediately, with a EAGAIN error if there is no
|
|
|
|
message to receive. If the value is `-1`, it will block until a message is
|
|
|
|
available. For all other values, it will wait for a message for that amount
|
|
|
|
of time before returning with an EAGAIN error.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: milliseconds
|
|
|
|
Default value:: -1 (infinite)
|
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_SNDTIMEO: Maximum time before a send operation returns with EAGAIN
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the timeout for send operation on the socket. If the value is `0`,
|
|
|
|
_zmq_send(3)_ will return immediately, with a EAGAIN error if the message
|
|
|
|
cannot be sent. If the value is `-1`, it will block until the message is sent.
|
|
|
|
For all other values, it will try to send the message for that amount of time
|
|
|
|
before returning with an EAGAIN error.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: milliseconds
|
|
|
|
Default value:: -1 (infinite)
|
|
|
|
Applicable socket types:: all
|
|
|
|
|
|
|
|
|
2013-01-31 20:47:45 +01:00
|
|
|
ZMQ_IPV6: Enable IPv6 on socket
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2011-08-08 12:10:31 +02:00
|
|
|
|
2013-01-31 20:47:45 +01:00
|
|
|
Set the IPv6 option for the socket. A value of `1` means IPv6 is
|
|
|
|
enabled on the socket, while `0` means the socket will use only IPv4.
|
|
|
|
When IPv6 is enabled the socket will connect to, or accept connections
|
|
|
|
from, both IPv4 and IPv6 hosts.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: boolean
|
|
|
|
Default value:: 0 (false)
|
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_IPV4ONLY: Use IPv4-only on socket
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2013-03-12 16:11:19 +01:00
|
|
|
Set the IPv4-only option for the socket. This option is deprecated.
|
2013-01-31 20:47:45 +01:00
|
|
|
Please use the ZMQ_IPV6 option.
|
2011-08-08 12:10:31 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: boolean
|
|
|
|
Default value:: 1 (true)
|
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
2013-03-12 16:11:19 +01:00
|
|
|
ZMQ_IMMEDIATE: Queue messages only to completed connections
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2012-06-12 16:34:48 +02:00
|
|
|
|
2013-03-12 16:11:19 +01:00
|
|
|
By default queues will fill on outgoing connections even if the connection has
|
|
|
|
not completed. This can lead to "lost" messages on sockets with round-robin
|
|
|
|
routing (REQ, PUSH, DEALER). If this option is set to `1`, messages shall be
|
|
|
|
queued only to completed connections. This will cause the socket to block if
|
|
|
|
there are no other connections, but will prevent queues from filling on pipes
|
|
|
|
awaiting connection.
|
2012-06-12 16:34:48 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: boolean
|
|
|
|
Default value:: 0 (false)
|
2012-10-08 09:36:35 +02:00
|
|
|
Applicable socket types:: all, only for connection-oriented transports.
|
2012-06-12 16:34:48 +02:00
|
|
|
|
|
|
|
|
2012-10-08 09:36:35 +02:00
|
|
|
ZMQ_ROUTER_MANDATORY: accept only routable messages on ROUTER sockets
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2012-03-15 13:06:44 +01:00
|
|
|
|
2013-06-05 15:25:52 +02:00
|
|
|
Sets the ROUTER socket behavior when an unroutable message is encountered. A
|
2012-10-08 09:36:35 +02:00
|
|
|
value of `0` is the default and discards the message silently when it cannot be
|
2012-10-19 08:09:52 +02:00
|
|
|
routed. A value of `1` returns an 'EHOSTUNREACH' error code if the message
|
|
|
|
cannot be routed.
|
2012-08-26 18:48:52 +02:00
|
|
|
|
2012-03-15 13:06:44 +01:00
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
2012-06-17 00:33:43 +02:00
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
2012-03-15 13:06:44 +01:00
|
|
|
Applicable socket types:: ZMQ_ROUTER
|
|
|
|
|
|
|
|
|
2012-11-06 13:18:58 +01:00
|
|
|
ZMQ_ROUTER_RAW: switch ROUTER socket to raw mode
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
2013-06-05 15:25:52 +02:00
|
|
|
Sets the raw mode on the ROUTER, when set to 1. When the ROUTER socket is in
|
2012-11-06 13:18:58 +01:00
|
|
|
raw mode, and when using the tcp:// transport, it will read and write TCP data
|
|
|
|
without 0MQ framing. This lets 0MQ applications talk to non-0MQ applications.
|
|
|
|
When using raw mode, you cannot set explicit identities, and the ZMQ_MSGMORE
|
|
|
|
flag is ignored when sending data messages. In raw mode you can close a specific
|
|
|
|
connection by sending it a zero-length message (following the identity frame).
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: ZMQ_ROUTER
|
|
|
|
|
|
|
|
|
2013-06-05 15:55:15 +02:00
|
|
|
ZMQ_PROBE_ROUTER: bootstrap connections to ROUTER sockets
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-23 10:49:40 +02:00
|
|
|
|
2013-06-05 15:25:52 +02:00
|
|
|
When set to 1, the socket will automatically send an empty message when a
|
|
|
|
new connection is made or accepted. You may set this on REQ, DEALER, or
|
|
|
|
ROUTER sockets connected to a ROUTER socket. The application must filter
|
2013-06-05 15:55:15 +02:00
|
|
|
such empty messages. The ZMQ_PROBE_ROUTER option in effect provides the
|
|
|
|
ROUTER application with an event signaling the arrival of a new peer.
|
2013-06-05 15:25:52 +02:00
|
|
|
|
|
|
|
NOTE: do not set this option on a socket that talks to any other socket
|
|
|
|
types: the results are undefined.
|
2013-05-23 10:49:40 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
2013-06-05 15:55:15 +02:00
|
|
|
Applicable socket types:: ZMQ_ROUTER, ZMQ_DEALER, ZMQ_REQ
|
2013-05-23 10:49:40 +02:00
|
|
|
|
|
|
|
|
2012-10-08 09:36:35 +02:00
|
|
|
ZMQ_XPUB_VERBOSE: provide all subscription messages on XPUB sockets
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2012-10-07 17:57:43 +02:00
|
|
|
|
2012-10-08 09:36:35 +02:00
|
|
|
Sets the 'XPUB' socket behavior on new subscriptions and unsubscriptions.
|
|
|
|
A value of '0' is the default and passes only new subscription messages to
|
|
|
|
upstream. A value of '1' passes all subscription messages upstream.
|
2012-10-07 17:57:43 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: ZMQ_XPUB
|
|
|
|
|
|
|
|
|
2012-04-09 11:39:52 +02:00
|
|
|
ZMQ_TCP_KEEPALIVE: Override SO_KEEPALIVE socket option
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-15 17:54:03 +02:00
|
|
|
|
2012-04-09 11:39:52 +02:00
|
|
|
Override 'SO_KEEPALIVE' socket option(where supported by OS).
|
|
|
|
The default value of `-1` means to skip any overrides and leave it to OS default.
|
2012-04-06 18:04:35 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: -1,0,1
|
2012-04-09 11:39:52 +02:00
|
|
|
Default value:: -1 (leave to OS default)
|
2012-04-06 18:04:35 +02:00
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
2012-04-09 11:39:52 +02:00
|
|
|
ZMQ_TCP_KEEPALIVE_IDLE: Override TCP_KEEPCNT(or TCP_KEEPALIVE on some OS)
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
Override 'TCP_KEEPCNT'(or 'TCP_KEEPALIVE' on some OS) socket option (where
|
|
|
|
supported by OS). The default value of `-1` means to skip any overrides and
|
|
|
|
leave it to OS default.
|
2012-04-06 18:04:35 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: -1,>0
|
2012-04-09 11:39:52 +02:00
|
|
|
Default value:: -1 (leave to OS default)
|
2012-04-06 18:04:35 +02:00
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
2012-04-09 11:39:52 +02:00
|
|
|
ZMQ_TCP_KEEPALIVE_CNT: Override TCP_KEEPCNT socket option
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
Override 'TCP_KEEPCNT' socket option(where supported by OS). The default
|
|
|
|
value of `-1` means to skip any overrides and leave it to OS default.
|
2012-04-06 18:04:35 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: -1,>0
|
2012-04-09 11:39:52 +02:00
|
|
|
Default value:: -1 (leave to OS default)
|
2012-04-06 18:04:35 +02:00
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
2012-04-09 11:39:52 +02:00
|
|
|
ZMQ_TCP_KEEPALIVE_INTVL: Override TCP_KEEPINTVL socket option
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
Override 'TCP_KEEPINTVL' socket option(where supported by OS). The default
|
|
|
|
value of `-1` means to skip any overrides and leave it to OS default.
|
2012-04-06 18:04:35 +02:00
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: -1,>0
|
2012-04-09 11:39:52 +02:00
|
|
|
Default value:: -1 (leave to OS default)
|
2012-04-06 18:04:35 +02:00
|
|
|
Applicable socket types:: all, when using TCP transports.
|
|
|
|
|
|
|
|
|
2012-04-12 16:37:14 +02:00
|
|
|
ZMQ_TCP_ACCEPT_FILTER: Assign filters to allow new TCP connections
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
Assign an arbitrary number of filters that will be applied for each new TCP
|
|
|
|
transport connection on a listening socket. If no filters are applied, then
|
|
|
|
the TCP transport allows connections from any IP address. If at least one
|
|
|
|
filter is applied then new connection source ip should be matched. To clear
|
|
|
|
all filters call zmq_setsockopt(socket, ZMQ_TCP_ACCEPT_FILTER, NULL, 0).
|
2012-04-12 16:37:14 +02:00
|
|
|
Filter is a null-terminated string with ipv6 or ipv4 CIDR.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: binary data
|
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: no filters (allow from all)
|
|
|
|
Applicable socket types:: all listening sockets, when using TCP transports.
|
|
|
|
|
|
|
|
|
2013-05-15 17:54:03 +02:00
|
|
|
ZMQ_PLAIN_SERVER: Set PLAIN server role
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Defines whether the socket will act as server for PLAIN security, see
|
2013-06-20 18:09:12 +02:00
|
|
|
linkzmq:zmq_plain[7]. A value of '1' means the socket will act as
|
2013-05-15 17:54:03 +02:00
|
|
|
PLAIN server. A value of '0' means the socket will not act as PLAIN
|
|
|
|
server, and its security role then depends on other option settings.
|
|
|
|
Setting this to '0' shall reset the socket security to NULL.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
2013-06-20 18:09:12 +02:00
|
|
|
Applicable socket types:: all, when using TCP transport
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
|
|
|
|
ZMQ_PLAIN_USERNAME: Set PLAIN security username
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the username for outgoing connections over TCP or IPC. If you set this
|
|
|
|
to a non-null value, the security mechanism used for connections shall be
|
2013-06-20 18:09:12 +02:00
|
|
|
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
|
2013-05-15 17:54:03 +02:00
|
|
|
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: character string
|
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: not set
|
2013-06-20 18:09:12 +02:00
|
|
|
Applicable socket types:: all, when using TCP transport
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
|
|
|
|
ZMQ_PLAIN_PASSWORD: Set PLAIN security password
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the password for outgoing connections over TCP or IPC. If you set this
|
|
|
|
to a non-null value, the security mechanism used for connections shall be
|
|
|
|
PLAIN, see linkzmq:zmq_plain[7]. If you set this to a null value, the security
|
|
|
|
mechanism used for connections shall be NULL, see linkzmq:zmq_null[3].
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: character string
|
|
|
|
Option value unit:: N/A
|
|
|
|
Default value:: not set
|
2013-06-20 18:09:12 +02:00
|
|
|
Applicable socket types:: all, when using TCP transport
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_CURVE_SERVER: Set CURVE server role
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Defines whether the socket will act as server for CURVE security, see
|
|
|
|
linkzmq:zmq_curve[7]. A value of '1' means the socket will act as
|
|
|
|
CURVE server. A value of '0' means the socket will not act as CURVE
|
|
|
|
server, and its security role then depends on other option settings.
|
|
|
|
Setting this to '0' shall reset the socket security to NULL. When you
|
|
|
|
set this you must also set the ZMQ_CURVE_PUBLICKEY option.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: int
|
|
|
|
Option value unit:: 0, 1
|
|
|
|
Default value:: 0
|
|
|
|
Applicable socket types:: all, when using TCP transport
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_CURVE_PUBLICKEY: Set CURVE public key
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the socket's long term public key. You must set this on a CURVE
|
|
|
|
client or server socket, see linkzmq:zmq_curve[7]. The key is 32 bytes.
|
|
|
|
For servers, it must be persisted and shared through some unspecified
|
|
|
|
secure mechanism to clients.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: binary data
|
|
|
|
Option value size:: 32
|
|
|
|
Default value:: NULL
|
|
|
|
Applicable socket types:: all, when using TCP transport
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_CURVE_SECRETKEY: Set CURVE secret key
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the socket's long term secret key. You must set this on a CURVE
|
|
|
|
client socket, see linkzmq:zmq_curve[7]. The key is 32 bytes.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: binary data
|
|
|
|
Option value size:: 32
|
|
|
|
Default value:: NULL
|
|
|
|
Applicable socket types:: all, when using TCP transport
|
|
|
|
|
|
|
|
|
|
|
|
ZMQ_CURVE_SERVERKEY: Set CURVE server key
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
Sets the socket's long term server key. You must set this on a CURVE
|
|
|
|
client socket, see linkzmq:zmq_curve[7]. The key is 32 bytes. This
|
|
|
|
key must be the same as the public key set on the server socket.
|
|
|
|
|
|
|
|
[horizontal]
|
|
|
|
Option value type:: binary data
|
|
|
|
Option value size:: 32
|
|
|
|
Default value:: NULL
|
|
|
|
Applicable socket types:: all, when using TCP transport
|
2013-05-15 17:54:03 +02:00
|
|
|
|
|
|
|
|
2010-02-10 16:18:46 +01:00
|
|
|
RETURN VALUE
|
|
|
|
------------
|
2010-03-09 18:47:31 +01:00
|
|
|
The _zmq_setsockopt()_ function shall return zero if successful. Otherwise it
|
2010-03-10 12:19:39 +01:00
|
|
|
shall return `-1` and set 'errno' to one of the values defined below.
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
ERRORS
|
|
|
|
------
|
|
|
|
*EINVAL*::
|
2010-03-09 18:47:31 +01:00
|
|
|
The requested option _option_name_ is unknown, or the requested _option_len_ or
|
|
|
|
_option_value_ is invalid.
|
2010-04-12 09:25:04 +02:00
|
|
|
*ETERM*::
|
2010-05-31 12:53:40 +02:00
|
|
|
The 0MQ 'context' associated with the specified 'socket' was terminated.
|
2011-04-09 09:35:34 +02:00
|
|
|
*ENOTSOCK*::
|
|
|
|
The provided 'socket' was invalid.
|
2010-09-08 08:39:27 +02:00
|
|
|
*EINTR*::
|
|
|
|
The operation was interrupted by delivery of a signal.
|
2010-04-12 09:25:04 +02:00
|
|
|
|
2010-02-10 16:18:46 +01:00
|
|
|
|
|
|
|
EXAMPLE
|
|
|
|
-------
|
2010-03-09 18:47:31 +01:00
|
|
|
.Subscribing to messages on a 'ZMQ_SUB' socket
|
2010-02-10 16:18:46 +01:00
|
|
|
----
|
2010-03-09 18:47:31 +01:00
|
|
|
/* Subscribe to all messages */
|
|
|
|
rc = zmq_setsockopt (socket, ZMQ_SUBSCRIBE, "", 0);
|
2009-11-22 16:51:21 +01:00
|
|
|
assert (rc == 0);
|
2010-03-09 18:47:31 +01:00
|
|
|
/* Subscribe to messages prefixed with "ANIMALS.CATS" */
|
|
|
|
rc = zmq_setsockopt (socket, ZMQ_SUBSCRIBE, "ANIMALS.CATS", 12);
|
|
|
|
----
|
|
|
|
|
|
|
|
.Setting I/O thread affinity
|
|
|
|
----
|
2010-04-06 15:23:13 +02:00
|
|
|
int64_t affinity;
|
2010-03-09 18:47:31 +01:00
|
|
|
/* Incoming connections on TCP port 5555 shall be handled by I/O thread 1 */
|
2010-04-06 15:23:13 +02:00
|
|
|
affinity = 1;
|
2013-05-15 14:11:15 +02:00
|
|
|
rc = zmq_setsockopt (socket, ZMQ_AFFINITY, &affinity, sizeof (affinity));
|
2010-03-09 18:47:31 +01:00
|
|
|
assert (rc);
|
|
|
|
rc = zmq_bind (socket, "tcp://lo:5555");
|
|
|
|
assert (rc);
|
|
|
|
/* Incoming connections on TCP port 5556 shall be handled by I/O thread 2 */
|
2010-04-06 15:23:13 +02:00
|
|
|
affinity = 2;
|
2013-05-15 14:11:15 +02:00
|
|
|
rc = zmq_setsockopt (socket, ZMQ_AFFINITY, &affinity, sizeof (affinity));
|
2010-03-09 18:47:31 +01:00
|
|
|
assert (rc);
|
2010-04-16 09:53:09 +02:00
|
|
|
rc = zmq_bind (socket, "tcp://lo:5556");
|
2010-03-09 18:47:31 +01:00
|
|
|
assert (rc);
|
2010-02-10 16:18:46 +01:00
|
|
|
----
|
|
|
|
|
|
|
|
|
|
|
|
SEE ALSO
|
|
|
|
--------
|
2010-05-31 12:53:40 +02:00
|
|
|
linkzmq:zmq_getsockopt[3]
|
2010-02-10 16:18:46 +01:00
|
|
|
linkzmq:zmq_socket[3]
|
2013-05-15 17:54:03 +02:00
|
|
|
linkzmq:zmq_plain[7]
|
|
|
|
linkzmq:zmq_curve[7]
|
2010-02-10 16:18:46 +01:00
|
|
|
linkzmq:zmq[7]
|
|
|
|
|
2009-11-22 16:51:21 +01:00
|
|
|
|
2010-09-04 15:55:11 +02:00
|
|
|
AUTHORS
|
|
|
|
-------
|
2013-04-11 18:53:02 +02:00
|
|
|
This page was written by the 0MQ community. To make a change please
|
|
|
|
read the 0MQ Contribution Policy at <http://www.zeromq.org/docs:contributing>.
|