mirror of
https://github.com/zeromq/libzmq.git
synced 2024-12-27 15:41:05 +08:00
104 lines
3.0 KiB
Plaintext
104 lines
3.0 KiB
Plaintext
zmq_tcp(7)
|
|
==========
|
|
|
|
|
|
NAME
|
|
----
|
|
zmq_tcp - 0MQ unicast transport using TCP
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
TCP is an ubiquitous, reliable, unicast transport. When connecting distributed
|
|
applications over a network with 0MQ, using the TCP transport will likely be
|
|
your first choice.
|
|
|
|
|
|
ADDRESSING
|
|
----------
|
|
A 0MQ endpoint is a string consisting of a 'transport'`://` followed by an
|
|
'address'. The 'transport' specifies the underlying protocol to use. The
|
|
'address' specifies the transport-specific address to connect to.
|
|
|
|
For the TCP transport, the transport is `tcp`, and the meaning of the
|
|
'address' part is defined below.
|
|
|
|
|
|
Assigning a local address to a socket
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
When assigning a local address to a socket using _zmq_bind()_ with the 'tcp'
|
|
transport, the 'endpoint' shall be interpreted as an 'interface' followed by a
|
|
colon and the TCP port number to use.
|
|
|
|
An 'interface' may be specified by either of the following:
|
|
|
|
* The wild-card `*`, meaning all available interfaces.
|
|
* The primary IPv4 or IPv6 address assigned to the interface, in its numeric
|
|
representation.
|
|
* The non-portable interface name as defined by the operating system.
|
|
|
|
The TCP port number may be specified by:
|
|
|
|
* A numeric value, usually above 1024 on POSIX systems.
|
|
* The wild-card `*`, meaning a system-assigned ephemeral port.
|
|
|
|
When using ephemeral ports, the caller should retrieve the actual assigned
|
|
port using the ZMQ_LAST_ENDPOINT socket option. See link:zmq_getsockopt.html[zmq_getsockopt]
|
|
for details.
|
|
|
|
|
|
Connecting a socket
|
|
~~~~~~~~~~~~~~~~~~~
|
|
When connecting a socket to a peer address using _zmq_connect()_ with the 'tcp'
|
|
transport, the 'endpoint' shall be interpreted as a 'peer address' followed by
|
|
a colon and the TCP port number to use.
|
|
|
|
A 'peer address' may be specified by either of the following:
|
|
|
|
* The DNS name of the peer.
|
|
* The IPv4 or IPv6 address of the peer, in its numeric representation.
|
|
|
|
Note: A description of the ZeroMQ Message Transport Protocol (ZMTP) which is
|
|
used by the TCP transport can be found at <http://rfc.zeromq.org/spec:15>
|
|
|
|
EXAMPLES
|
|
--------
|
|
.Assigning a local address to a socket
|
|
----
|
|
// TCP port 5555 on all available interfaces
|
|
rc = zmq_bind(socket, "tcp://*:5555");
|
|
assert (rc == 0);
|
|
// TCP port 5555 on the local loop-back interface on all platforms
|
|
rc = zmq_bind(socket, "tcp://127.0.0.1:5555");
|
|
assert (rc == 0);
|
|
// TCP port 5555 on the first Ethernet network interface on Linux
|
|
rc = zmq_bind(socket, "tcp://eth0:5555");
|
|
assert (rc == 0);
|
|
----
|
|
|
|
.Connecting a socket
|
|
----
|
|
// Connecting using an IP address
|
|
rc = zmq_connect(socket, "tcp://192.168.1.1:5555");
|
|
assert (rc == 0);
|
|
// Connecting using a DNS name
|
|
rc = zmq_connect(socket, "tcp://server1:5555");
|
|
assert (rc == 0);
|
|
----
|
|
|
|
|
|
SEE ALSO
|
|
--------
|
|
link:zmq_bind.html[zmq_bind]
|
|
link:zmq_connect.html[zmq_connect]
|
|
link:zmq_pgm.html[zmq_pgm]
|
|
link:zmq_ipc.html[zmq_ipc]
|
|
link:zmq_inproc.html[zmq_inproc]
|
|
link:zmq.html[zmq]
|
|
|
|
|
|
AUTHORS
|
|
-------
|
|
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>.
|