nn_tcpmux(7)
============

NAME
----
nn_tcpmux - TCPMUX transport mechanism


SYNOPSIS
--------
*#include <nanomsg/nn.h>*

*#include <nanomsg/tcpmux.h>*


DESCRIPTION
-----------

THIS IS AN EXPERIMENTAL FEATURE. DO NOT USE.
THE FUNCTIONALITY IS SUBJECT TO CHANGE WITHOUT PRIOR NOTICE.

TCPMUX transport is basically the same as TCP transport
(see linknanomsg:nn_tcp[7]) except that it allows to specify service names
along with IP addresses and TCP ports. What it means in practice is that many
applications on the same box can share the same TCP port.

When connecting and binding use the same connection string syntax as with
TCP transport, except that the initial protocol specification should be
'tcpmux://' instead of 'tcp://' and that the connection string should end
with a slash and a service name:

----
nn_connect (s, "tcpmux://192.168.0.1:5555/foo");
----

When binding to a TCPMUX endpoint, linknanomsg:nn_tcpmuxd[1] daemon must be
running on the box and specified port. There is no such requirement when
connecting to a TCPMUX endpoint.


Socket Options
~~~~~~~~~~~~~~

NN_TCPMUX_NODELAY::
    This option, when set to 1, disables Nagle's algorithm. It also disables
    delaying of TCP acknowledgments. Using this option improves latency at
    the expense of throughput. Type of this option is int. Default value is 0.


EXAMPLE
-------

----
nn_bind (s1, "tcpmux://*:5555/foo");
nn_connect (s2, "tcpmux://server1.example.org:5555/foo");
----

SEE ALSO
--------
linknanomsg:nn_tcpmuxd[1]
linknanomsg:nn_tcp[7]
linknanomsg:nn_inproc[7]
linknanomsg:nn_ipc[7]
linknanomsg:nn_bind[3]
linknanomsg:nn_connect[3]
linknanomsg:nanomsg[7]


AUTHORS
-------
Martin Sustrik <sustrik@250bpm.com>

