.TH zmq_send 3 "" "(c)2007-2009 FastMQ Inc." "0MQ User Manuals" .SH NAME zmq_send \- sends a message .SH SYNOPSIS .B int zmq_send (void *s, zmq_msg_t *msg, int flags); .SH DESCRIPTION Send the message .IR msg to the socket .IR s . .IR flags argument can be combination the flags described below. .IP "\fBZMQ_NOBLOCK\fP" The flag specifies that the operation should be performed in non-blocking mode. I.e. if it cannot be processed immediately, error should be returned with .IR errno set to EAGAIN. .IP "\fBZMQ_NOFLUSH\fP" The flag specifies that .IR zmq_send should not flush the message downstream immediately. Instead, it should batch ZMQ_NOFLUSH messages and send them downstream only once .IR zmq_flush is invoked. This is an optimisation for cases where several messages are sent in a single business transaction. However, the effect is measurable only in extremely high-perf scenarios (million messages a second or so). If that's not your case, use standard flushing send instead. .SH RETURN VALUE In case of success the function returns zero. Otherwise it returns -1 and sets .IR errno to the appropriate value. .SH ERRORS .IP "\fBEAGAIN\fP" it's a non-blocking send and message cannot be sent at the moment. .IP "\fBENOTSUP\fP" function isn't supported by particular socket type. .IP "\fBEFSM\fP" function cannot be called at the moment, because socket is not in the approprite state. This error may occur with sockets that switch between several states (e.g. ZMQ_REQ). .SH EXAMPLE .nf zmq_msg_t msg; int rc = zmq_msg_init_size (&msg, 6); assert (rc == 0); memset (zmq_msg_data (&msg), 'A', 6); rc = zmq_send (s, &msg, 0); assert (rc == 0); .fi .SH SEE ALSO .BR zmq_flush (3) .BR zmq_recv (3) .BR zmq_msg_init (3) .BR zmq_msg_init_size (3) .BR zmq_msg_init_data (3) .BR zmq_msg_data (3) .BR zmq_msg_size (3) .SH AUTHOR Martin Sustrik