libzmq 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE +703 -0
- data/README.md +31 -0
- data/lib/libzmq.rb +17 -0
- data/lib/libzmq/ffi-rzmq.rb +3 -0
- data/libzmq/Makefile +5 -0
- data/libzmq/extconf.rb +24 -0
- data/libzmq/zeromq-2.1.7/AUTHORS +92 -0
- data/libzmq/zeromq-2.1.7/COPYING +674 -0
- data/libzmq/zeromq-2.1.7/COPYING.LESSER +206 -0
- data/libzmq/zeromq-2.1.7/ChangeLog +15620 -0
- data/libzmq/zeromq-2.1.7/INSTALL +237 -0
- data/libzmq/zeromq-2.1.7/MAINTAINERS +56 -0
- data/libzmq/zeromq-2.1.7/Makefile.am +42 -0
- data/libzmq/zeromq-2.1.7/Makefile.in +779 -0
- data/libzmq/zeromq-2.1.7/NEWS +275 -0
- data/libzmq/zeromq-2.1.7/README +39 -0
- data/libzmq/zeromq-2.1.7/acinclude.m4 +582 -0
- data/libzmq/zeromq-2.1.7/aclocal.m4 +1206 -0
- data/libzmq/zeromq-2.1.7/autogen.sh +45 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/Makefile.in +390 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_lat/c_local_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_local_thr/c_local_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_lat/c_remote_lat.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/c_remote_thr/c_remote_thr.vcproj +176 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/libzmq/libzmq.vcproj +783 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/msvc.sln +89 -0
- data/libzmq/zeromq-2.1.7/builds/msvc/platform.hpp +32 -0
- data/libzmq/zeromq-2.1.7/builds/redhat/zeromq.spec.in +139 -0
- data/libzmq/zeromq-2.1.7/config/compile +143 -0
- data/libzmq/zeromq-2.1.7/config/config.guess +1502 -0
- data/libzmq/zeromq-2.1.7/config/config.sub +1714 -0
- data/libzmq/zeromq-2.1.7/config/depcomp +630 -0
- data/libzmq/zeromq-2.1.7/config/install-sh +520 -0
- data/libzmq/zeromq-2.1.7/config/libtool.m4 +7377 -0
- data/libzmq/zeromq-2.1.7/config/ltmain.sh +8413 -0
- data/libzmq/zeromq-2.1.7/config/ltoptions.m4 +368 -0
- data/libzmq/zeromq-2.1.7/config/ltsugar.m4 +123 -0
- data/libzmq/zeromq-2.1.7/config/ltversion.m4 +23 -0
- data/libzmq/zeromq-2.1.7/config/lt~obsolete.m4 +92 -0
- data/libzmq/zeromq-2.1.7/config/missing +376 -0
- data/libzmq/zeromq-2.1.7/configure +21645 -0
- data/libzmq/zeromq-2.1.7/configure.in +380 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.am +46 -0
- data/libzmq/zeromq-2.1.7/doc/Makefile.in +546 -0
- data/libzmq/zeromq-2.1.7/doc/asciidoc.conf +56 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.7 +242 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.html +846 -0
- data/libzmq/zeromq-2.1.7/doc/zmq.txt +218 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.3 +166 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_bind.txt +91 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_close.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.3 +161 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.html +732 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_connect.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.7 +410 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.html +765 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_cpp.txt +212 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.3 +140 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.html +736 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_device.txt +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_epgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_errno.txt +50 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.3 +944 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.html +1713 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_getsockopt.txt +407 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.3 +71 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.html +635 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_init.txt +51 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.7 +115 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.html +669 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_inproc.txt +89 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.7 +109 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.html +662 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_ipc.txt +80 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.3 +81 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.html +647 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_close.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.3 +95 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_copy.txt +57 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_data.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.3 +110 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.3 +138 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.html +678 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_data.txt +83 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.3 +97 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.html +656 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_init_size.txt +58 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.3 +79 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.html +645 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_move.txt +52 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.3 +76 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.html +633 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_msg_size.txt +48 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.7 +209 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.html +749 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_pgm.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.3 +204 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_poll.txt +132 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.3 +172 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.html +746 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_recv.txt +121 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.3 +185 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_send.txt +120 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.3 +878 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.html +1603 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_setsockopt.txt +382 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.3 +779 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.html +1424 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_socket.txt +342 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.html +634 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_strerror.txt +55 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.7 +244 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.html +755 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_tcp.txt +162 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.3 +135 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.html +672 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_term.txt +65 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.3 +78 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.html +632 -0
- data/libzmq/zeromq-2.1.7/doc/zmq_version.txt +53 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.am +8 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/Makefile.in +588 -0
- data/libzmq/zeromq-2.1.7/foreign/openpgm/libpgm-5.1.115~dfsg.tar.gz +0 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.cpp +2923 -0
- data/libzmq/zeromq-2.1.7/foreign/xmlParser/xmlParser.hpp +762 -0
- data/libzmq/zeromq-2.1.7/include/zmq.h +269 -0
- data/libzmq/zeromq-2.1.7/include/zmq.hpp +301 -0
- data/libzmq/zeromq-2.1.7/include/zmq_utils.h +64 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.am +21 -0
- data/libzmq/zeromq-2.1.7/perf/Makefile.in +566 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_lat.cpp +232 -0
- data/libzmq/zeromq-2.1.7/perf/inproc_thr.cpp +246 -0
- data/libzmq/zeromq-2.1.7/perf/local_lat.cpp +108 -0
- data/libzmq/zeromq-2.1.7/perf/local_thr.cpp +138 -0
- data/libzmq/zeromq-2.1.7/perf/remote_lat.cpp +121 -0
- data/libzmq/zeromq-2.1.7/perf/remote_thr.cpp +104 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.am +155 -0
- data/libzmq/zeromq-2.1.7/src/Makefile.in +1320 -0
- data/libzmq/zeromq-2.1.7/src/array.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/atomic_counter.hpp +164 -0
- data/libzmq/zeromq-2.1.7/src/atomic_ptr.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/blob.hpp +34 -0
- data/libzmq/zeromq-2.1.7/src/clock.cpp +118 -0
- data/libzmq/zeromq-2.1.7/src/clock.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/command.cpp +39 -0
- data/libzmq/zeromq-2.1.7/src/command.hpp +147 -0
- data/libzmq/zeromq-2.1.7/src/config.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.cpp +119 -0
- data/libzmq/zeromq-2.1.7/src/connect_session.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/ctx.cpp +322 -0
- data/libzmq/zeromq-2.1.7/src/ctx.hpp +159 -0
- data/libzmq/zeromq-2.1.7/src/decoder.cpp +129 -0
- data/libzmq/zeromq-2.1.7/src/decoder.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/device.cpp +120 -0
- data/libzmq/zeromq-2.1.7/src/device.hpp +32 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.cpp +190 -0
- data/libzmq/zeromq-2.1.7/src/devpoll.hpp +100 -0
- data/libzmq/zeromq-2.1.7/src/dist.cpp +200 -0
- data/libzmq/zeromq-2.1.7/src/dist.hpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.cpp +90 -0
- data/libzmq/zeromq-2.1.7/src/encoder.hpp +184 -0
- data/libzmq/zeromq-2.1.7/src/epoll.cpp +177 -0
- data/libzmq/zeromq-2.1.7/src/epoll.hpp +96 -0
- data/libzmq/zeromq-2.1.7/src/err.cpp +238 -0
- data/libzmq/zeromq-2.1.7/src/err.hpp +145 -0
- data/libzmq/zeromq-2.1.7/src/fd.hpp +45 -0
- data/libzmq/zeromq-2.1.7/src/fq.cpp +164 -0
- data/libzmq/zeromq-2.1.7/src/fq.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/i_engine.hpp +53 -0
- data/libzmq/zeromq-2.1.7/src/i_inout.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/i_poll_events.hpp +46 -0
- data/libzmq/zeromq-2.1.7/src/io_object.cpp +107 -0
- data/libzmq/zeromq-2.1.7/src/io_object.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.cpp +109 -0
- data/libzmq/zeromq-2.1.7/src/io_thread.hpp +88 -0
- data/libzmq/zeromq-2.1.7/src/ip.cpp +339 -0
- data/libzmq/zeromq-2.1.7/src/ip.hpp +68 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.cpp +194 -0
- data/libzmq/zeromq-2.1.7/src/kqueue.hpp +103 -0
- data/libzmq/zeromq-2.1.7/src/lb.cpp +174 -0
- data/libzmq/zeromq-2.1.7/src/lb.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/libzmq.pc.in +10 -0
- data/libzmq/zeromq-2.1.7/src/likely.hpp +33 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.cpp +382 -0
- data/libzmq/zeromq-2.1.7/src/mailbox.hpp +62 -0
- data/libzmq/zeromq-2.1.7/src/msg_content.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/mutex.hpp +121 -0
- data/libzmq/zeromq-2.1.7/src/named_session.cpp +85 -0
- data/libzmq/zeromq-2.1.7/src/named_session.hpp +57 -0
- data/libzmq/zeromq-2.1.7/src/object.cpp +467 -0
- data/libzmq/zeromq-2.1.7/src/object.hpp +127 -0
- data/libzmq/zeromq-2.1.7/src/options.cpp +336 -0
- data/libzmq/zeromq-2.1.7/src/options.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/own.cpp +214 -0
- data/libzmq/zeromq-2.1.7/src/own.hpp +140 -0
- data/libzmq/zeromq-2.1.7/src/pair.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/pair.hpp +76 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.cpp +259 -0
- data/libzmq/zeromq-2.1.7/src/pgm_receiver.hpp +129 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.cpp +215 -0
- data/libzmq/zeromq-2.1.7/src/pgm_sender.hpp +105 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.cpp +705 -0
- data/libzmq/zeromq-2.1.7/src/pgm_socket.hpp +118 -0
- data/libzmq/zeromq-2.1.7/src/pipe.cpp +409 -0
- data/libzmq/zeromq-2.1.7/src/pipe.hpp +214 -0
- data/libzmq/zeromq-2.1.7/src/platform.hpp.in +228 -0
- data/libzmq/zeromq-2.1.7/src/poll.cpp +180 -0
- data/libzmq/zeromq-2.1.7/src/poll.hpp +104 -0
- data/libzmq/zeromq-2.1.7/src/poller.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.cpp +99 -0
- data/libzmq/zeromq-2.1.7/src/poller_base.hpp +84 -0
- data/libzmq/zeromq-2.1.7/src/pub.cpp +31 -0
- data/libzmq/zeromq-2.1.7/src/pub.hpp +44 -0
- data/libzmq/zeromq-2.1.7/src/pull.cpp +61 -0
- data/libzmq/zeromq-2.1.7/src/pull.hpp +60 -0
- data/libzmq/zeromq-2.1.7/src/push.cpp +62 -0
- data/libzmq/zeromq-2.1.7/src/push.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/reaper.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/reaper.hpp +77 -0
- data/libzmq/zeromq-2.1.7/src/rep.cpp +131 -0
- data/libzmq/zeromq-2.1.7/src/rep.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/req.cpp +121 -0
- data/libzmq/zeromq-2.1.7/src/req.hpp +58 -0
- data/libzmq/zeromq-2.1.7/src/select.cpp +211 -0
- data/libzmq/zeromq-2.1.7/src/select.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/semaphore.hpp +189 -0
- data/libzmq/zeromq-2.1.7/src/session.cpp +347 -0
- data/libzmq/zeromq-2.1.7/src/session.hpp +150 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.cpp +811 -0
- data/libzmq/zeromq-2.1.7/src/socket_base.hpp +207 -0
- data/libzmq/zeromq-2.1.7/src/stdint.hpp +63 -0
- data/libzmq/zeromq-2.1.7/src/sub.cpp +75 -0
- data/libzmq/zeromq-2.1.7/src/sub.hpp +50 -0
- data/libzmq/zeromq-2.1.7/src/swap.cpp +325 -0
- data/libzmq/zeromq-2.1.7/src/swap.hpp +123 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.cpp +310 -0
- data/libzmq/zeromq-2.1.7/src/tcp_connecter.hpp +81 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.cpp +371 -0
- data/libzmq/zeromq-2.1.7/src/tcp_listener.hpp +73 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.cpp +228 -0
- data/libzmq/zeromq-2.1.7/src/tcp_socket.hpp +72 -0
- data/libzmq/zeromq-2.1.7/src/thread.cpp +97 -0
- data/libzmq/zeromq-2.1.7/src/thread.hpp +78 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.cpp +41 -0
- data/libzmq/zeromq-2.1.7/src/transient_session.hpp +52 -0
- data/libzmq/zeromq-2.1.7/src/trie.cpp +181 -0
- data/libzmq/zeromq-2.1.7/src/trie.hpp +59 -0
- data/libzmq/zeromq-2.1.7/src/uuid.cpp +233 -0
- data/libzmq/zeromq-2.1.7/src/uuid.hpp +111 -0
- data/libzmq/zeromq-2.1.7/src/windows.hpp +79 -0
- data/libzmq/zeromq-2.1.7/src/wire.hpp +99 -0
- data/libzmq/zeromq-2.1.7/src/xpub.cpp +76 -0
- data/libzmq/zeromq-2.1.7/src/xpub.hpp +61 -0
- data/libzmq/zeromq-2.1.7/src/xrep.cpp +337 -0
- data/libzmq/zeromq-2.1.7/src/xrep.hpp +116 -0
- data/libzmq/zeromq-2.1.7/src/xreq.cpp +74 -0
- data/libzmq/zeromq-2.1.7/src/xreq.hpp +65 -0
- data/libzmq/zeromq-2.1.7/src/xsub.cpp +172 -0
- data/libzmq/zeromq-2.1.7/src/xsub.hpp +80 -0
- data/libzmq/zeromq-2.1.7/src/ypipe.hpp +209 -0
- data/libzmq/zeromq-2.1.7/src/yqueue.hpp +198 -0
- data/libzmq/zeromq-2.1.7/src/zmq.cpp +798 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.cpp +166 -0
- data/libzmq/zeromq-2.1.7/src/zmq_connecter.hpp +92 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.cpp +220 -0
- data/libzmq/zeromq-2.1.7/src/zmq_engine.hpp +87 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.cpp +216 -0
- data/libzmq/zeromq-2.1.7/src/zmq_init.hpp +93 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.cpp +78 -0
- data/libzmq/zeromq-2.1.7/src/zmq_listener.hpp +67 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.am +30 -0
- data/libzmq/zeromq-2.1.7/tests/Makefile.in +713 -0
- data/libzmq/zeromq-2.1.7/tests/test_hwm.cpp +68 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_pair_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_inproc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_ipc.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_reqrep_tcp.cpp +31 -0
- data/libzmq/zeromq-2.1.7/tests/test_shutdown_stress.cpp +87 -0
- data/libzmq/zeromq-2.1.7/tests/testutil.hpp +130 -0
- data/libzmq/zeromq-2.1.7/version.sh +21 -0
- data/libzmq/zeromq-2.1.7/zeromq.spec +139 -0
- metadata +348 -0
@@ -0,0 +1,218 @@
|
|
1
|
+
zmq(7)
|
2
|
+
======
|
3
|
+
|
4
|
+
|
5
|
+
NAME
|
6
|
+
----
|
7
|
+
zmq - 0MQ lightweight messaging kernel
|
8
|
+
|
9
|
+
|
10
|
+
SYNOPSIS
|
11
|
+
--------
|
12
|
+
*#include <zmq.h>*
|
13
|
+
|
14
|
+
*cc* ['flags'] 'files' *-lzmq* ['libraries']
|
15
|
+
|
16
|
+
|
17
|
+
DESCRIPTION
|
18
|
+
-----------
|
19
|
+
The 0MQ lightweight messaging kernel is a library which extends the standard
|
20
|
+
socket interfaces with features traditionally provided by specialised
|
21
|
+
_messaging middleware_ products. 0MQ sockets provide an abstraction of
|
22
|
+
asynchronous _message queues_, multiple _messaging patterns_, message
|
23
|
+
filtering (_subscriptions_), seamless access to multiple _transport protocols_
|
24
|
+
and more.
|
25
|
+
|
26
|
+
This documentation presents an overview of 0MQ concepts, describes how 0MQ
|
27
|
+
abstracts standard sockets and provides a reference manual for the functions
|
28
|
+
provided by the 0MQ library.
|
29
|
+
|
30
|
+
|
31
|
+
Context
|
32
|
+
~~~~~~~
|
33
|
+
Before using any 0MQ library functions the caller must initialise a 0MQ
|
34
|
+
'context' using _zmq_init()_. The following functions are provided to handle
|
35
|
+
initialisation and termination of a 'context':
|
36
|
+
|
37
|
+
Initialise 0MQ context::
|
38
|
+
linkzmq:zmq_init[3]
|
39
|
+
|
40
|
+
Terminate 0MQ context::
|
41
|
+
linkzmq:zmq_term[3]
|
42
|
+
|
43
|
+
|
44
|
+
Thread safety
|
45
|
+
^^^^^^^^^^^^^
|
46
|
+
A 0MQ 'context' is thread safe and may be shared among as many application
|
47
|
+
threads as necessary, without any additional locking required on the part of
|
48
|
+
the caller.
|
49
|
+
|
50
|
+
Individual 0MQ 'sockets' are _not_ thread safe except in the case where full
|
51
|
+
memory barriers are issued when migrating a socket from one thread to another.
|
52
|
+
In practice this means applications can create a socket in one thread with
|
53
|
+
_zmq_socket()_ and then pass it to a _newly created_ thread as part of thread
|
54
|
+
initialization, for example via a structure passed as an argument to
|
55
|
+
_pthread_create()_.
|
56
|
+
|
57
|
+
|
58
|
+
Multiple contexts
|
59
|
+
^^^^^^^^^^^^^^^^^
|
60
|
+
Multiple 'contexts' may coexist within a single application. Thus, an
|
61
|
+
application can use 0MQ directly and at the same time make use of any number of
|
62
|
+
additional libraries or components which themselves make use of 0MQ as long as
|
63
|
+
the above guidelines regarding thread safety are adhered to.
|
64
|
+
|
65
|
+
|
66
|
+
Messages
|
67
|
+
~~~~~~~~
|
68
|
+
A 0MQ message is a discrete unit of data passed between applications or
|
69
|
+
components of the same application. 0MQ messages have no internal structure and
|
70
|
+
from the point of view of 0MQ itself they are considered to be opaque binary
|
71
|
+
data.
|
72
|
+
|
73
|
+
The following functions are provided to work with messages:
|
74
|
+
|
75
|
+
Initialise a message::
|
76
|
+
linkzmq:zmq_msg_init[3]
|
77
|
+
linkzmq:zmq_msg_init_size[3]
|
78
|
+
linkzmq:zmq_msg_init_data[3]
|
79
|
+
|
80
|
+
Release a message::
|
81
|
+
linkzmq:zmq_msg_close[3]
|
82
|
+
|
83
|
+
Access message content::
|
84
|
+
linkzmq:zmq_msg_data[3]
|
85
|
+
linkzmq:zmq_msg_size[3]
|
86
|
+
|
87
|
+
Message manipulation::
|
88
|
+
linkzmq:zmq_msg_copy[3]
|
89
|
+
linkzmq:zmq_msg_move[3]
|
90
|
+
|
91
|
+
|
92
|
+
Sockets
|
93
|
+
~~~~~~~
|
94
|
+
0MQ sockets present an abstraction of a asynchronous _message queue_, with the
|
95
|
+
exact queueing semantics depending on the socket type in use. See
|
96
|
+
linkzmq:zmq_socket[3] for the socket types provided.
|
97
|
+
|
98
|
+
The following functions are provided to work with sockets:
|
99
|
+
|
100
|
+
Creating a socket::
|
101
|
+
linkzmq:zmq_socket[3]
|
102
|
+
|
103
|
+
Closing a socket::
|
104
|
+
linkzmq:zmq_close[3]
|
105
|
+
|
106
|
+
Manipulating socket options::
|
107
|
+
linkzmq:zmq_getsockopt[3]
|
108
|
+
linkzmq:zmq_setsockopt[3]
|
109
|
+
|
110
|
+
Establishing a message flow::
|
111
|
+
linkzmq:zmq_bind[3]
|
112
|
+
linkzmq:zmq_connect[3]
|
113
|
+
|
114
|
+
Sending and receiving messages::
|
115
|
+
linkzmq:zmq_send[3]
|
116
|
+
linkzmq:zmq_recv[3]
|
117
|
+
|
118
|
+
.Input/output multiplexing
|
119
|
+
0MQ provides a mechanism for applications to multiplex input/output events over
|
120
|
+
a set containing both 0MQ sockets and standard sockets. This mechanism mirrors
|
121
|
+
the standard _poll()_ system call, and is described in detail in
|
122
|
+
linkzmq:zmq_poll[3].
|
123
|
+
|
124
|
+
|
125
|
+
Transports
|
126
|
+
~~~~~~~~~~
|
127
|
+
A 0MQ socket can use multiple different underlying transport mechanisms.
|
128
|
+
Each transport mechanism is suited to a particular purpose and has its own
|
129
|
+
advantages and drawbacks.
|
130
|
+
|
131
|
+
The following transport mechanisms are provided:
|
132
|
+
|
133
|
+
Unicast transport using TCP::
|
134
|
+
linkzmq:zmq_tcp[7]
|
135
|
+
|
136
|
+
Reliable multicast transport using PGM::
|
137
|
+
linkzmq:zmq_pgm[7]
|
138
|
+
|
139
|
+
Local inter-process communication transport::
|
140
|
+
linkzmq:zmq_ipc[7]
|
141
|
+
|
142
|
+
Local in-process (inter-thread) communication transport::
|
143
|
+
linkzmq:zmq_inproc[7]
|
144
|
+
|
145
|
+
|
146
|
+
Devices
|
147
|
+
~~~~~~~
|
148
|
+
0MQ provides 'devices', which are building blocks that act as intermediate
|
149
|
+
nodes in complex messaging topologies. Devices can act as brokers that other
|
150
|
+
nodes connect to, proxies that connect through to other nodes, or any mix of
|
151
|
+
these two models.
|
152
|
+
|
153
|
+
You can start a device in an application thread, see linkzmq:zmq_device[3].
|
154
|
+
|
155
|
+
|
156
|
+
ERROR HANDLING
|
157
|
+
--------------
|
158
|
+
The 0MQ library functions handle errors using the standard conventions found on
|
159
|
+
POSIX systems. Generally, this means that upon failure a 0MQ library function
|
160
|
+
shall return either a NULL value (if returning a pointer) or a negative value
|
161
|
+
(if returning an integer), and the actual error code shall be stored in the
|
162
|
+
'errno' variable.
|
163
|
+
|
164
|
+
On non-POSIX systems some users may experience issues with retrieving the
|
165
|
+
correct value of the 'errno' variable. The _zmq_errno()_ function is provided
|
166
|
+
to assist in these cases; for details refer to linkzmq:zmq_errno[3].
|
167
|
+
|
168
|
+
The _zmq_strerror()_ function is provided to translate 0MQ-specific error codes
|
169
|
+
into error message strings; for details refer to linkzmq:zmq_strerror[3].
|
170
|
+
|
171
|
+
|
172
|
+
MISCELLANEOUS
|
173
|
+
-------------
|
174
|
+
The following miscellaneous functions are provided:
|
175
|
+
|
176
|
+
Report 0MQ library version::
|
177
|
+
linkzmq:zmq_version[3]
|
178
|
+
|
179
|
+
|
180
|
+
LANGUAGE BINDINGS
|
181
|
+
-----------------
|
182
|
+
The 0MQ library provides interfaces suitable for calling from programs in any
|
183
|
+
language; this documentation documents those interfaces as they would be used
|
184
|
+
by C programmers. The intent is that programmers using 0MQ from other languages
|
185
|
+
shall refer to this documentation alongside any documentation provided by the
|
186
|
+
vendor of their language binding.
|
187
|
+
|
188
|
+
|
189
|
+
C++ language binding
|
190
|
+
~~~~~~~~~~~~~~~~~~~~
|
191
|
+
The 0MQ distribution includes a $$C++$$ language binding, which is documented
|
192
|
+
separately in linkzmq:zmq_cpp[7].
|
193
|
+
|
194
|
+
|
195
|
+
Other language bindings
|
196
|
+
~~~~~~~~~~~~~~~~~~~~~~~
|
197
|
+
Other language bindings (Python, Ruby, Java and more) are provided by members
|
198
|
+
of the 0MQ community and pointers can be found on the 0MQ website.
|
199
|
+
|
200
|
+
|
201
|
+
AUTHORS
|
202
|
+
-------
|
203
|
+
This 0MQ manual page was written by Martin Sustrik <sustrik@250bpm.com> and
|
204
|
+
Martin Lucina <mato@kotelna.sk>.
|
205
|
+
|
206
|
+
|
207
|
+
RESOURCES
|
208
|
+
---------
|
209
|
+
Main web site: <http://www.zeromq.org/>
|
210
|
+
|
211
|
+
Report bugs to the 0MQ development mailing list: <zeromq-dev@lists.zeromq.org>
|
212
|
+
|
213
|
+
|
214
|
+
COPYING
|
215
|
+
-------
|
216
|
+
Free use of this software is granted under the terms of the GNU Lesser General
|
217
|
+
Public License (LGPL). For details see the files `COPYING` and `COPYING.LESSER`
|
218
|
+
included with the 0MQ distribution.
|
@@ -0,0 +1,166 @@
|
|
1
|
+
'\" t
|
2
|
+
.\" Title: zmq_bind
|
3
|
+
.\" Author: [see the "AUTHORS" section]
|
4
|
+
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
|
5
|
+
.\" Date: 05/07/2011
|
6
|
+
.\" Manual: 0MQ Manual
|
7
|
+
.\" Source: 0MQ 2.1.6
|
8
|
+
.\" Language: English
|
9
|
+
.\"
|
10
|
+
.TH "ZMQ_BIND" "3" "05/07/2011" "0MQ 2\&.1\&.6" "0MQ Manual"
|
11
|
+
.\" -----------------------------------------------------------------
|
12
|
+
.\" * Define some portability stuff
|
13
|
+
.\" -----------------------------------------------------------------
|
14
|
+
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
15
|
+
.\" http://bugs.debian.org/507673
|
16
|
+
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
17
|
+
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
18
|
+
.ie \n(.g .ds Aq \(aq
|
19
|
+
.el .ds Aq '
|
20
|
+
.\" -----------------------------------------------------------------
|
21
|
+
.\" * set default formatting
|
22
|
+
.\" -----------------------------------------------------------------
|
23
|
+
.\" disable hyphenation
|
24
|
+
.nh
|
25
|
+
.\" disable justification (adjust text to left margin only)
|
26
|
+
.ad l
|
27
|
+
.\" -----------------------------------------------------------------
|
28
|
+
.\" * MAIN CONTENT STARTS HERE *
|
29
|
+
.\" -----------------------------------------------------------------
|
30
|
+
.SH "NAME"
|
31
|
+
zmq_bind \- accept connections on a socket
|
32
|
+
.SH "SYNOPSIS"
|
33
|
+
.sp
|
34
|
+
\fBint zmq_bind (void \fR\fB\fI*socket\fR\fR\fB, const char \fR\fB\fI*endpoint\fR\fR\fB);\fR
|
35
|
+
.SH "DESCRIPTION"
|
36
|
+
.sp
|
37
|
+
The \fIzmq_bind()\fR function shall create an endpoint for accepting connections and bind it to the socket referenced by the \fIsocket\fR argument\&.
|
38
|
+
.sp
|
39
|
+
The \fIendpoint\fR argument is a string consisting of two parts as follows: \fItransport\fR://\fIaddress\fR\&. The \fItransport\fR part specifies the underlying transport protocol to use\&. The meaning of the \fIaddress\fR part is specific to the underlying transport protocol selected\&.
|
40
|
+
.sp
|
41
|
+
The following transports are defined:
|
42
|
+
.PP
|
43
|
+
\fIinproc\fR
|
44
|
+
.RS 4
|
45
|
+
local in\-process (inter\-thread) communication transport, see
|
46
|
+
\fBzmq_inproc\fR(7)
|
47
|
+
.RE
|
48
|
+
.PP
|
49
|
+
\fIipc\fR
|
50
|
+
.RS 4
|
51
|
+
local inter\-process communication transport, see
|
52
|
+
\fBzmq_ipc\fR(7)
|
53
|
+
.RE
|
54
|
+
.PP
|
55
|
+
\fItcp\fR
|
56
|
+
.RS 4
|
57
|
+
unicast transport using TCP, see
|
58
|
+
\fBzmq_tcp\fR(7)
|
59
|
+
.RE
|
60
|
+
.PP
|
61
|
+
\fIpgm\fR, \fIepgm\fR
|
62
|
+
.RS 4
|
63
|
+
reliable multicast transport using PGM, see
|
64
|
+
\fBzmq_pgm\fR(7)
|
65
|
+
.RE
|
66
|
+
.sp
|
67
|
+
With the exception of \fIZMQ_PAIR\fR sockets, a single socket may be connected to multiple endpoints using \fIzmq_connect()\fR, while simultaneously accepting incoming connections from multiple endpoints bound to the socket using \fIzmq_bind()\fR\&. Refer to \fBzmq_socket\fR(3) for a description of the exact semantics involved when connecting or binding a socket to multiple endpoints\&.
|
68
|
+
.SH "RETURN VALUE"
|
69
|
+
.sp
|
70
|
+
The \fIzmq_bind()\fR function shall return zero if successful\&. Otherwise it shall return \-1 and set \fIerrno\fR to one of the values defined below\&.
|
71
|
+
.SH "ERRORS"
|
72
|
+
.PP
|
73
|
+
\fBEPROTONOSUPPORT\fR
|
74
|
+
.RS 4
|
75
|
+
The requested
|
76
|
+
\fItransport\fR
|
77
|
+
protocol is not supported\&.
|
78
|
+
.RE
|
79
|
+
.PP
|
80
|
+
\fBENOCOMPATPROTO\fR
|
81
|
+
.RS 4
|
82
|
+
The requested
|
83
|
+
\fItransport\fR
|
84
|
+
protocol is not compatible with the socket type\&.
|
85
|
+
.RE
|
86
|
+
.PP
|
87
|
+
\fBEADDRINUSE\fR
|
88
|
+
.RS 4
|
89
|
+
The requested
|
90
|
+
\fIaddress\fR
|
91
|
+
is already in use\&.
|
92
|
+
.RE
|
93
|
+
.PP
|
94
|
+
\fBEADDRNOTAVAIL\fR
|
95
|
+
.RS 4
|
96
|
+
The requested
|
97
|
+
\fIaddress\fR
|
98
|
+
was not local\&.
|
99
|
+
.RE
|
100
|
+
.PP
|
101
|
+
\fBENODEV\fR
|
102
|
+
.RS 4
|
103
|
+
The requested
|
104
|
+
\fIaddress\fR
|
105
|
+
specifies a nonexistent interface\&.
|
106
|
+
.RE
|
107
|
+
.PP
|
108
|
+
\fBETERM\fR
|
109
|
+
.RS 4
|
110
|
+
The 0MQ
|
111
|
+
\fIcontext\fR
|
112
|
+
associated with the specified
|
113
|
+
\fIsocket\fR
|
114
|
+
was terminated\&.
|
115
|
+
.RE
|
116
|
+
.PP
|
117
|
+
\fBENOTSOCK\fR
|
118
|
+
.RS 4
|
119
|
+
The provided
|
120
|
+
\fIsocket\fR
|
121
|
+
was invalid\&.
|
122
|
+
.RE
|
123
|
+
.PP
|
124
|
+
\fBEMTHREAD\fR
|
125
|
+
.RS 4
|
126
|
+
No I/O thread is available to accomplish the task\&.
|
127
|
+
.RE
|
128
|
+
.SH "EXAMPLE"
|
129
|
+
.PP
|
130
|
+
\fBBinding a publisher socket to an in-process and a TCP transport\fR.
|
131
|
+
.sp
|
132
|
+
.if n \{\
|
133
|
+
.RS 4
|
134
|
+
.\}
|
135
|
+
.nf
|
136
|
+
/* Create a ZMQ_PUB socket */
|
137
|
+
void *socket = zmq_socket (context, ZMQ_PUB);
|
138
|
+
assert (socket);
|
139
|
+
/* Bind it to a in\-process transport with the address \*(Aqmy_publisher\*(Aq */
|
140
|
+
int rc = zmq_bind (socket, "inproc://my_publisher");
|
141
|
+
assert (rc == 0);
|
142
|
+
/* Bind it to a TCP transport on port 5555 of the \*(Aqeth0\*(Aq interface */
|
143
|
+
rc = zmq_bind (socket, "tcp://eth0:5555");
|
144
|
+
assert (rc == 0);
|
145
|
+
.fi
|
146
|
+
.if n \{\
|
147
|
+
.RE
|
148
|
+
.\}
|
149
|
+
.sp
|
150
|
+
.SH "SEE ALSO"
|
151
|
+
.sp
|
152
|
+
\fBzmq_connect\fR(3) \fBzmq_socket\fR(3) \fBzmq\fR(7)
|
153
|
+
.SH "AUTHORS"
|
154
|
+
.sp
|
155
|
+
This 0MQ manual page was written by Martin Sustrik <\m[blue]\fBsustrik@250bpm\&.com\fR\m[]\&\s-2\u[1]\d\s+2> and Martin Lucina <\m[blue]\fBmato@kotelna\&.sk\fR\m[]\&\s-2\u[2]\d\s+2>\&.
|
156
|
+
.SH "NOTES"
|
157
|
+
.IP " 1." 4
|
158
|
+
sustrik@250bpm.com
|
159
|
+
.RS 4
|
160
|
+
\%mailto:sustrik@250bpm.com
|
161
|
+
.RE
|
162
|
+
.IP " 2." 4
|
163
|
+
mato@kotelna.sk
|
164
|
+
.RS 4
|
165
|
+
\%mailto:mato@kotelna.sk
|
166
|
+
.RE
|
@@ -0,0 +1,746 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
2
|
+
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
6
|
+
<meta name="generator" content="AsciiDoc 8.5.2" />
|
7
|
+
<title>zmq_bind(3)</title>
|
8
|
+
<style type="text/css">
|
9
|
+
/* Debug borders */
|
10
|
+
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
|
11
|
+
/*
|
12
|
+
border: 1px solid red;
|
13
|
+
*/
|
14
|
+
}
|
15
|
+
|
16
|
+
body {
|
17
|
+
margin: 1em 5% 1em 5%;
|
18
|
+
}
|
19
|
+
|
20
|
+
a {
|
21
|
+
color: blue;
|
22
|
+
text-decoration: underline;
|
23
|
+
}
|
24
|
+
a:visited {
|
25
|
+
color: fuchsia;
|
26
|
+
}
|
27
|
+
|
28
|
+
em {
|
29
|
+
font-style: italic;
|
30
|
+
color: navy;
|
31
|
+
}
|
32
|
+
|
33
|
+
strong {
|
34
|
+
font-weight: bold;
|
35
|
+
color: #083194;
|
36
|
+
}
|
37
|
+
|
38
|
+
tt {
|
39
|
+
color: navy;
|
40
|
+
}
|
41
|
+
|
42
|
+
h1, h2, h3, h4, h5, h6 {
|
43
|
+
color: #527bbd;
|
44
|
+
font-family: sans-serif;
|
45
|
+
margin-top: 1.2em;
|
46
|
+
margin-bottom: 0.5em;
|
47
|
+
line-height: 1.3;
|
48
|
+
}
|
49
|
+
|
50
|
+
h1, h2, h3 {
|
51
|
+
border-bottom: 2px solid silver;
|
52
|
+
}
|
53
|
+
h2 {
|
54
|
+
padding-top: 0.5em;
|
55
|
+
}
|
56
|
+
h3 {
|
57
|
+
float: left;
|
58
|
+
}
|
59
|
+
h3 + * {
|
60
|
+
clear: left;
|
61
|
+
}
|
62
|
+
|
63
|
+
div.sectionbody {
|
64
|
+
font-family: serif;
|
65
|
+
margin-left: 0;
|
66
|
+
}
|
67
|
+
|
68
|
+
hr {
|
69
|
+
border: 1px solid silver;
|
70
|
+
}
|
71
|
+
|
72
|
+
p {
|
73
|
+
margin-top: 0.5em;
|
74
|
+
margin-bottom: 0.5em;
|
75
|
+
}
|
76
|
+
|
77
|
+
ul, ol, li > p {
|
78
|
+
margin-top: 0;
|
79
|
+
}
|
80
|
+
|
81
|
+
pre {
|
82
|
+
padding: 0;
|
83
|
+
margin: 0;
|
84
|
+
}
|
85
|
+
|
86
|
+
span#author {
|
87
|
+
color: #527bbd;
|
88
|
+
font-family: sans-serif;
|
89
|
+
font-weight: bold;
|
90
|
+
font-size: 1.1em;
|
91
|
+
}
|
92
|
+
span#email {
|
93
|
+
}
|
94
|
+
span#revnumber, span#revdate, span#revremark {
|
95
|
+
font-family: sans-serif;
|
96
|
+
}
|
97
|
+
|
98
|
+
div#footer {
|
99
|
+
font-family: sans-serif;
|
100
|
+
font-size: small;
|
101
|
+
border-top: 2px solid silver;
|
102
|
+
padding-top: 0.5em;
|
103
|
+
margin-top: 4.0em;
|
104
|
+
}
|
105
|
+
div#footer-text {
|
106
|
+
float: left;
|
107
|
+
padding-bottom: 0.5em;
|
108
|
+
}
|
109
|
+
div#footer-badges {
|
110
|
+
float: right;
|
111
|
+
padding-bottom: 0.5em;
|
112
|
+
}
|
113
|
+
|
114
|
+
div#preamble {
|
115
|
+
margin-top: 1.5em;
|
116
|
+
margin-bottom: 1.5em;
|
117
|
+
}
|
118
|
+
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
|
119
|
+
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
|
120
|
+
div.admonitionblock {
|
121
|
+
margin-top: 1.0em;
|
122
|
+
margin-bottom: 1.5em;
|
123
|
+
}
|
124
|
+
div.admonitionblock {
|
125
|
+
margin-top: 2.0em;
|
126
|
+
margin-bottom: 2.0em;
|
127
|
+
margin-right: 10%;
|
128
|
+
color: #606060;
|
129
|
+
}
|
130
|
+
|
131
|
+
div.content { /* Block element content. */
|
132
|
+
padding: 0;
|
133
|
+
}
|
134
|
+
|
135
|
+
/* Block element titles. */
|
136
|
+
div.title, caption.title {
|
137
|
+
color: #527bbd;
|
138
|
+
font-family: sans-serif;
|
139
|
+
font-weight: bold;
|
140
|
+
text-align: left;
|
141
|
+
margin-top: 1.0em;
|
142
|
+
margin-bottom: 0.5em;
|
143
|
+
}
|
144
|
+
div.title + * {
|
145
|
+
margin-top: 0;
|
146
|
+
}
|
147
|
+
|
148
|
+
td div.title:first-child {
|
149
|
+
margin-top: 0.0em;
|
150
|
+
}
|
151
|
+
div.content div.title:first-child {
|
152
|
+
margin-top: 0.0em;
|
153
|
+
}
|
154
|
+
div.content + div.title {
|
155
|
+
margin-top: 0.0em;
|
156
|
+
}
|
157
|
+
|
158
|
+
div.sidebarblock > div.content {
|
159
|
+
background: #ffffee;
|
160
|
+
border: 1px solid silver;
|
161
|
+
padding: 0.5em;
|
162
|
+
}
|
163
|
+
|
164
|
+
div.listingblock > div.content {
|
165
|
+
border: 1px solid silver;
|
166
|
+
background: #f4f4f4;
|
167
|
+
padding: 0.5em;
|
168
|
+
}
|
169
|
+
|
170
|
+
div.quoteblock, div.verseblock {
|
171
|
+
padding-left: 1.0em;
|
172
|
+
margin-left: 1.0em;
|
173
|
+
margin-right: 10%;
|
174
|
+
border-left: 5px solid #dddddd;
|
175
|
+
color: #777777;
|
176
|
+
}
|
177
|
+
|
178
|
+
div.quoteblock > div.attribution {
|
179
|
+
padding-top: 0.5em;
|
180
|
+
text-align: right;
|
181
|
+
}
|
182
|
+
|
183
|
+
div.verseblock > div.content {
|
184
|
+
white-space: pre;
|
185
|
+
}
|
186
|
+
div.verseblock > div.attribution {
|
187
|
+
padding-top: 0.75em;
|
188
|
+
text-align: left;
|
189
|
+
}
|
190
|
+
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
|
191
|
+
div.verseblock + div.attribution {
|
192
|
+
text-align: left;
|
193
|
+
}
|
194
|
+
|
195
|
+
div.admonitionblock .icon {
|
196
|
+
vertical-align: top;
|
197
|
+
font-size: 1.1em;
|
198
|
+
font-weight: bold;
|
199
|
+
text-decoration: underline;
|
200
|
+
color: #527bbd;
|
201
|
+
padding-right: 0.5em;
|
202
|
+
}
|
203
|
+
div.admonitionblock td.content {
|
204
|
+
padding-left: 0.5em;
|
205
|
+
border-left: 3px solid #dddddd;
|
206
|
+
}
|
207
|
+
|
208
|
+
div.exampleblock > div.content {
|
209
|
+
border-left: 3px solid #dddddd;
|
210
|
+
padding-left: 0.5em;
|
211
|
+
}
|
212
|
+
|
213
|
+
div.imageblock div.content { padding-left: 0; }
|
214
|
+
span.image img { border-style: none; }
|
215
|
+
a.image:visited { color: white; }
|
216
|
+
|
217
|
+
dl {
|
218
|
+
margin-top: 0.8em;
|
219
|
+
margin-bottom: 0.8em;
|
220
|
+
}
|
221
|
+
dt {
|
222
|
+
margin-top: 0.5em;
|
223
|
+
margin-bottom: 0;
|
224
|
+
font-style: normal;
|
225
|
+
color: navy;
|
226
|
+
}
|
227
|
+
dd > *:first-child {
|
228
|
+
margin-top: 0.1em;
|
229
|
+
}
|
230
|
+
|
231
|
+
ul, ol {
|
232
|
+
list-style-position: outside;
|
233
|
+
}
|
234
|
+
ol.arabic {
|
235
|
+
list-style-type: decimal;
|
236
|
+
}
|
237
|
+
ol.loweralpha {
|
238
|
+
list-style-type: lower-alpha;
|
239
|
+
}
|
240
|
+
ol.upperalpha {
|
241
|
+
list-style-type: upper-alpha;
|
242
|
+
}
|
243
|
+
ol.lowerroman {
|
244
|
+
list-style-type: lower-roman;
|
245
|
+
}
|
246
|
+
ol.upperroman {
|
247
|
+
list-style-type: upper-roman;
|
248
|
+
}
|
249
|
+
|
250
|
+
div.compact ul, div.compact ol,
|
251
|
+
div.compact p, div.compact p,
|
252
|
+
div.compact div, div.compact div {
|
253
|
+
margin-top: 0.1em;
|
254
|
+
margin-bottom: 0.1em;
|
255
|
+
}
|
256
|
+
|
257
|
+
div.tableblock > table {
|
258
|
+
border: 3px solid #527bbd;
|
259
|
+
}
|
260
|
+
thead, p.table.header {
|
261
|
+
font-family: sans-serif;
|
262
|
+
font-weight: bold;
|
263
|
+
}
|
264
|
+
tfoot {
|
265
|
+
font-weight: bold;
|
266
|
+
}
|
267
|
+
td > div.verse {
|
268
|
+
white-space: pre;
|
269
|
+
}
|
270
|
+
p.table {
|
271
|
+
margin-top: 0;
|
272
|
+
}
|
273
|
+
/* Because the table frame attribute is overriden by CSS in most browsers. */
|
274
|
+
div.tableblock > table[frame="void"] {
|
275
|
+
border-style: none;
|
276
|
+
}
|
277
|
+
div.tableblock > table[frame="hsides"] {
|
278
|
+
border-left-style: none;
|
279
|
+
border-right-style: none;
|
280
|
+
}
|
281
|
+
div.tableblock > table[frame="vsides"] {
|
282
|
+
border-top-style: none;
|
283
|
+
border-bottom-style: none;
|
284
|
+
}
|
285
|
+
|
286
|
+
|
287
|
+
div.hdlist {
|
288
|
+
margin-top: 0.8em;
|
289
|
+
margin-bottom: 0.8em;
|
290
|
+
}
|
291
|
+
div.hdlist tr {
|
292
|
+
padding-bottom: 15px;
|
293
|
+
}
|
294
|
+
dt.hdlist1.strong, td.hdlist1.strong {
|
295
|
+
font-weight: bold;
|
296
|
+
}
|
297
|
+
td.hdlist1 {
|
298
|
+
vertical-align: top;
|
299
|
+
font-style: normal;
|
300
|
+
padding-right: 0.8em;
|
301
|
+
color: navy;
|
302
|
+
}
|
303
|
+
td.hdlist2 {
|
304
|
+
vertical-align: top;
|
305
|
+
}
|
306
|
+
div.hdlist.compact tr {
|
307
|
+
margin: 0;
|
308
|
+
padding-bottom: 0;
|
309
|
+
}
|
310
|
+
|
311
|
+
.comment {
|
312
|
+
background: yellow;
|
313
|
+
}
|
314
|
+
|
315
|
+
.footnote, .footnoteref {
|
316
|
+
font-size: 0.8em;
|
317
|
+
}
|
318
|
+
|
319
|
+
span.footnote, span.footnoteref {
|
320
|
+
vertical-align: super;
|
321
|
+
}
|
322
|
+
|
323
|
+
#footnotes {
|
324
|
+
margin: 20px 0 20px 0;
|
325
|
+
padding: 7px 0 0 0;
|
326
|
+
}
|
327
|
+
|
328
|
+
#footnotes div.footnote {
|
329
|
+
margin: 0 0 5px 0;
|
330
|
+
}
|
331
|
+
|
332
|
+
#footnotes hr {
|
333
|
+
border: none;
|
334
|
+
border-top: 1px solid silver;
|
335
|
+
height: 1px;
|
336
|
+
text-align: left;
|
337
|
+
margin-left: 0;
|
338
|
+
width: 20%;
|
339
|
+
min-width: 100px;
|
340
|
+
}
|
341
|
+
|
342
|
+
|
343
|
+
@media print {
|
344
|
+
div#footer-badges { display: none; }
|
345
|
+
}
|
346
|
+
|
347
|
+
div#toc {
|
348
|
+
margin-bottom: 2.5em;
|
349
|
+
}
|
350
|
+
|
351
|
+
div#toctitle {
|
352
|
+
color: #527bbd;
|
353
|
+
font-family: sans-serif;
|
354
|
+
font-size: 1.1em;
|
355
|
+
font-weight: bold;
|
356
|
+
margin-top: 1.0em;
|
357
|
+
margin-bottom: 0.1em;
|
358
|
+
}
|
359
|
+
|
360
|
+
div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
|
361
|
+
margin-top: 0;
|
362
|
+
margin-bottom: 0;
|
363
|
+
}
|
364
|
+
div.toclevel2 {
|
365
|
+
margin-left: 2em;
|
366
|
+
font-size: 0.9em;
|
367
|
+
}
|
368
|
+
div.toclevel3 {
|
369
|
+
margin-left: 4em;
|
370
|
+
font-size: 0.9em;
|
371
|
+
}
|
372
|
+
div.toclevel4 {
|
373
|
+
margin-left: 6em;
|
374
|
+
font-size: 0.9em;
|
375
|
+
}
|
376
|
+
/* Overrides for manpage documents */
|
377
|
+
h1 {
|
378
|
+
padding-top: 0.5em;
|
379
|
+
padding-bottom: 0.5em;
|
380
|
+
border-top: 2px solid silver;
|
381
|
+
border-bottom: 2px solid silver;
|
382
|
+
}
|
383
|
+
h2 {
|
384
|
+
border-style: none;
|
385
|
+
}
|
386
|
+
div.sectionbody {
|
387
|
+
margin-left: 5%;
|
388
|
+
}
|
389
|
+
|
390
|
+
@media print {
|
391
|
+
div#toc { display: none; }
|
392
|
+
}
|
393
|
+
|
394
|
+
/* Workarounds for IE6's broken and incomplete CSS2. */
|
395
|
+
|
396
|
+
div.sidebar-content {
|
397
|
+
background: #ffffee;
|
398
|
+
border: 1px solid silver;
|
399
|
+
padding: 0.5em;
|
400
|
+
}
|
401
|
+
div.sidebar-title, div.image-title {
|
402
|
+
color: #527bbd;
|
403
|
+
font-family: sans-serif;
|
404
|
+
font-weight: bold;
|
405
|
+
margin-top: 0.0em;
|
406
|
+
margin-bottom: 0.5em;
|
407
|
+
}
|
408
|
+
|
409
|
+
div.listingblock div.content {
|
410
|
+
border: 1px solid silver;
|
411
|
+
background: #f4f4f4;
|
412
|
+
padding: 0.5em;
|
413
|
+
}
|
414
|
+
|
415
|
+
div.quoteblock-attribution {
|
416
|
+
padding-top: 0.5em;
|
417
|
+
text-align: right;
|
418
|
+
}
|
419
|
+
|
420
|
+
div.verseblock-content {
|
421
|
+
white-space: pre;
|
422
|
+
}
|
423
|
+
div.verseblock-attribution {
|
424
|
+
padding-top: 0.75em;
|
425
|
+
text-align: left;
|
426
|
+
}
|
427
|
+
|
428
|
+
div.exampleblock-content {
|
429
|
+
border-left: 3px solid #dddddd;
|
430
|
+
padding-left: 0.5em;
|
431
|
+
}
|
432
|
+
|
433
|
+
/* IE6 sets dynamically generated links as visited. */
|
434
|
+
div#toc a:visited { color: blue; }
|
435
|
+
</style>
|
436
|
+
<script type="text/javascript">
|
437
|
+
/*<+'])');
|
481
|
+
// Function that scans the DOM tree for header elements (the DOM2
|
482
|
+
// nodeIterator API would be a better technique but not supported by all
|
483
|
+
// browsers).
|
484
|
+
var iterate = function (el) {
|
485
|
+
for (var i = el.firstChild; i != null; i = i.nextSibling) {
|
486
|
+
if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
|
487
|
+
var mo = re.exec(i.tagName);
|
488
|
+
if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
|
489
|
+
result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
|
490
|
+
}
|
491
|
+
iterate(i);
|
492
|
+
}
|
493
|
+
}
|
494
|
+
}
|
495
|
+
iterate(el);
|
496
|
+
return result;
|
497
|
+
}
|
498
|
+
|
499
|
+
var toc = document.getElementById("toc");
|
500
|
+
var entries = tocEntries(document.getElementById("content"), toclevels);
|
501
|
+
for (var i = 0; i < entries.length; ++i) {
|
502
|
+
var entry = entries[i];
|
503
|
+
if (entry.element.id == "")
|
504
|
+
entry.element.id = "_toc_" + i;
|
505
|
+
var a = document.createElement("a");
|
506
|
+
a.href = "#" + entry.element.id;
|
507
|
+
a.appendChild(document.createTextNode(entry.text));
|
508
|
+
var div = document.createElement("div");
|
509
|
+
div.appendChild(a);
|
510
|
+
div.className = "toclevel" + entry.toclevel;
|
511
|
+
toc.appendChild(div);
|
512
|
+
}
|
513
|
+
if (entries.length == 0)
|
514
|
+
toc.parentNode.removeChild(toc);
|
515
|
+
},
|
516
|
+
|
517
|
+
|
518
|
+
/////////////////////////////////////////////////////////////////////
|
519
|
+
// Footnotes generator
|
520
|
+
/////////////////////////////////////////////////////////////////////
|
521
|
+
|
522
|
+
/* Based on footnote generation code from:
|
523
|
+
* http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
|
524
|
+
*/
|
525
|
+
|
526
|
+
footnotes: function () {
|
527
|
+
var cont = document.getElementById("content");
|
528
|
+
var noteholder = document.getElementById("footnotes");
|
529
|
+
var spans = cont.getElementsByTagName("span");
|
530
|
+
var refs = {};
|
531
|
+
var n = 0;
|
532
|
+
for (i=0; i<spans.length; i++) {
|
533
|
+
if (spans[i].className == "footnote") {
|
534
|
+
n++;
|
535
|
+
// Use [\s\S] in place of . so multi-line matches work.
|
536
|
+
// Because JavaScript has no s (dotall) regex flag.
|
537
|
+
note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
|
538
|
+
noteholder.innerHTML +=
|
539
|
+
"<div class='footnote' id='_footnote_" + n + "'>" +
|
540
|
+
"<a href='#_footnoteref_" + n + "' title='Return to text'>" +
|
541
|
+
n + "</a>. " + note + "</div>";
|
542
|
+
spans[i].innerHTML =
|
543
|
+
"[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
|
544
|
+
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
545
|
+
var id =spans[i].getAttribute("id");
|
546
|
+
if (id != null) refs["#"+id] = n;
|
547
|
+
}
|
548
|
+
}
|
549
|
+
if (n == 0)
|
550
|
+
noteholder.parentNode.removeChild(noteholder);
|
551
|
+
else {
|
552
|
+
// Process footnoterefs.
|
553
|
+
for (i=0; i<spans.length; i++) {
|
554
|
+
if (spans[i].className == "footnoteref") {
|
555
|
+
var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
|
556
|
+
href = href.match(/#.*/)[0]; // Because IE return full URL.
|
557
|
+
n = refs[href];
|
558
|
+
spans[i].innerHTML =
|
559
|
+
"[<a href='#_footnote_" + n +
|
560
|
+
"' title='View footnote' class='footnote'>" + n + "</a>]";
|
561
|
+
}
|
562
|
+
}
|
563
|
+
}
|
564
|
+
}
|
565
|
+
|
566
|
+
}
|
567
|
+
/*]]>*/
|
568
|
+
</script>
|
569
|
+
</head>
|
570
|
+
<body>
|
571
|
+
<div id="header">
|
572
|
+
<h1>
|
573
|
+
zmq_bind(3) Manual Page
|
574
|
+
</h1>
|
575
|
+
<h2>NAME</h2>
|
576
|
+
<div class="sectionbody">
|
577
|
+
<p>zmq_bind -
|
578
|
+
accept connections on a socket
|
579
|
+
</p>
|
580
|
+
</div>
|
581
|
+
</div>
|
582
|
+
<div id="content">
|
583
|
+
<h2 id="_synopsis">SYNOPSIS</h2>
|
584
|
+
<div class="sectionbody">
|
585
|
+
<div class="paragraph"><p><strong>int zmq_bind (void <em>*socket</em>, const char <em>*endpoint</em>);</strong></p></div>
|
586
|
+
</div>
|
587
|
+
<h2 id="_description">DESCRIPTION</h2>
|
588
|
+
<div class="sectionbody">
|
589
|
+
<div class="paragraph"><p>The <em>zmq_bind()</em> function shall create an endpoint for accepting connections
|
590
|
+
and bind it to the socket referenced by the <em>socket</em> argument.</p></div>
|
591
|
+
<div class="paragraph"><p>The <em>endpoint</em> argument is a string consisting of two parts as follows:
|
592
|
+
<em>transport</em><tt>://</tt><em>address</em>. The <em>transport</em> part specifies the underlying
|
593
|
+
transport protocol to use. The meaning of the <em>address</em> part is specific to
|
594
|
+
the underlying transport protocol selected.</p></div>
|
595
|
+
<div class="paragraph"><p>The following transports are defined:</p></div>
|
596
|
+
<div class="dlist"><dl>
|
597
|
+
<dt class="hdlist1">
|
598
|
+
<em>inproc</em>
|
599
|
+
</dt>
|
600
|
+
<dd>
|
601
|
+
<p>
|
602
|
+
local in-process (inter-thread) communication transport, see <a href="zmq_inproc.html">zmq_inproc(7)</a>
|
603
|
+
</p>
|
604
|
+
</dd>
|
605
|
+
<dt class="hdlist1">
|
606
|
+
<em>ipc</em>
|
607
|
+
</dt>
|
608
|
+
<dd>
|
609
|
+
<p>
|
610
|
+
local inter-process communication transport, see <a href="zmq_ipc.html">zmq_ipc(7)</a>
|
611
|
+
</p>
|
612
|
+
</dd>
|
613
|
+
<dt class="hdlist1">
|
614
|
+
<em>tcp</em>
|
615
|
+
</dt>
|
616
|
+
<dd>
|
617
|
+
<p>
|
618
|
+
unicast transport using TCP, see <a href="zmq_tcp.html">zmq_tcp(7)</a>
|
619
|
+
</p>
|
620
|
+
</dd>
|
621
|
+
<dt class="hdlist1">
|
622
|
+
<em>pgm</em>, <em>epgm</em>
|
623
|
+
</dt>
|
624
|
+
<dd>
|
625
|
+
<p>
|
626
|
+
reliable multicast transport using PGM, see <a href="zmq_pgm.html">zmq_pgm(7)</a>
|
627
|
+
</p>
|
628
|
+
</dd>
|
629
|
+
</dl></div>
|
630
|
+
<div class="paragraph"><p>With the exception of <em>ZMQ_PAIR</em> sockets, a single socket may be connected to
|
631
|
+
multiple endpoints using <em>zmq_connect()</em>, while simultaneously accepting
|
632
|
+
incoming connections from multiple endpoints bound to the socket using
|
633
|
+
<em>zmq_bind()</em>. Refer to <a href="zmq_socket.html">zmq_socket(3)</a> for a description of the exact
|
634
|
+
semantics involved when connecting or binding a socket to multiple endpoints.</p></div>
|
635
|
+
</div>
|
636
|
+
<h2 id="_return_value">RETURN VALUE</h2>
|
637
|
+
<div class="sectionbody">
|
638
|
+
<div class="paragraph"><p>The <em>zmq_bind()</em> function shall return zero if successful. Otherwise it shall
|
639
|
+
return <tt>-1</tt> and set <em>errno</em> to one of the values defined below.</p></div>
|
640
|
+
</div>
|
641
|
+
<h2 id="_errors">ERRORS</h2>
|
642
|
+
<div class="sectionbody">
|
643
|
+
<div class="dlist"><dl>
|
644
|
+
<dt class="hdlist1">
|
645
|
+
<strong>EPROTONOSUPPORT</strong>
|
646
|
+
</dt>
|
647
|
+
<dd>
|
648
|
+
<p>
|
649
|
+
The requested <em>transport</em> protocol is not supported.
|
650
|
+
</p>
|
651
|
+
</dd>
|
652
|
+
<dt class="hdlist1">
|
653
|
+
<strong>ENOCOMPATPROTO</strong>
|
654
|
+
</dt>
|
655
|
+
<dd>
|
656
|
+
<p>
|
657
|
+
The requested <em>transport</em> protocol is not compatible with the socket type.
|
658
|
+
</p>
|
659
|
+
</dd>
|
660
|
+
<dt class="hdlist1">
|
661
|
+
<strong>EADDRINUSE</strong>
|
662
|
+
</dt>
|
663
|
+
<dd>
|
664
|
+
<p>
|
665
|
+
The requested <em>address</em> is already in use.
|
666
|
+
</p>
|
667
|
+
</dd>
|
668
|
+
<dt class="hdlist1">
|
669
|
+
<strong>EADDRNOTAVAIL</strong>
|
670
|
+
</dt>
|
671
|
+
<dd>
|
672
|
+
<p>
|
673
|
+
The requested <em>address</em> was not local.
|
674
|
+
</p>
|
675
|
+
</dd>
|
676
|
+
<dt class="hdlist1">
|
677
|
+
<strong>ENODEV</strong>
|
678
|
+
</dt>
|
679
|
+
<dd>
|
680
|
+
<p>
|
681
|
+
The requested <em>address</em> specifies a nonexistent interface.
|
682
|
+
</p>
|
683
|
+
</dd>
|
684
|
+
<dt class="hdlist1">
|
685
|
+
<strong>ETERM</strong>
|
686
|
+
</dt>
|
687
|
+
<dd>
|
688
|
+
<p>
|
689
|
+
The ØMQ <em>context</em> associated with the specified <em>socket</em> was terminated.
|
690
|
+
</p>
|
691
|
+
</dd>
|
692
|
+
<dt class="hdlist1">
|
693
|
+
<strong>ENOTSOCK</strong>
|
694
|
+
</dt>
|
695
|
+
<dd>
|
696
|
+
<p>
|
697
|
+
The provided <em>socket</em> was invalid.
|
698
|
+
</p>
|
699
|
+
</dd>
|
700
|
+
<dt class="hdlist1">
|
701
|
+
<strong>EMTHREAD</strong>
|
702
|
+
</dt>
|
703
|
+
<dd>
|
704
|
+
<p>
|
705
|
+
No I/O thread is available to accomplish the task.
|
706
|
+
</p>
|
707
|
+
</dd>
|
708
|
+
</dl></div>
|
709
|
+
</div>
|
710
|
+
<h2 id="_example">EXAMPLE</h2>
|
711
|
+
<div class="sectionbody">
|
712
|
+
<div class="listingblock">
|
713
|
+
<div class="title">Binding a publisher socket to an in-process and a TCP transport</div>
|
714
|
+
<div class="content">
|
715
|
+
<pre><tt>/* Create a ZMQ_PUB socket */
|
716
|
+
void *socket = zmq_socket (context, ZMQ_PUB);
|
717
|
+
assert (socket);
|
718
|
+
/* Bind it to a in-process transport with the address 'my_publisher' */
|
719
|
+
int rc = zmq_bind (socket, "inproc://my_publisher");
|
720
|
+
assert (rc == 0);
|
721
|
+
/* Bind it to a TCP transport on port 5555 of the 'eth0' interface */
|
722
|
+
rc = zmq_bind (socket, "tcp://eth0:5555");
|
723
|
+
assert (rc == 0);</tt></pre>
|
724
|
+
</div></div>
|
725
|
+
</div>
|
726
|
+
<h2 id="_see_also">SEE ALSO</h2>
|
727
|
+
<div class="sectionbody">
|
728
|
+
<div class="paragraph"><p><a href="zmq_connect.html">zmq_connect(3)</a>
|
729
|
+
<a href="zmq_socket.html">zmq_socket(3)</a>
|
730
|
+
<a href="zmq.html">zmq(7)</a></p></div>
|
731
|
+
</div>
|
732
|
+
<h2 id="_authors">AUTHORS</h2>
|
733
|
+
<div class="sectionbody">
|
734
|
+
<div class="paragraph"><p>This ØMQ manual page was written by Martin Sustrik <<a href="mailto:sustrik@250bpm.com">sustrik@250bpm.com</a>> and
|
735
|
+
Martin Lucina <<a href="mailto:mato@kotelna.sk">mato@kotelna.sk</a>>.</p></div>
|
736
|
+
</div>
|
737
|
+
</div>
|
738
|
+
<div id="footnotes"><hr /></div>
|
739
|
+
<div id="footer">
|
740
|
+
<div id="footer-text">
|
741
|
+
ØMQ 2.1.6<br />
|
742
|
+
Last updated 2011-05-07 07:13:32 CEST
|
743
|
+
</div>
|
744
|
+
</div>
|
745
|
+
</body>
|
746
|
+
</html>
|