# zmq_tcp(7) Manual Page

## NAME

zmq_tcp - 0MQ unicast transport using TCP

## SYNOPSIS

TCP is an ubiquitous, reliable, unicast transport. When connecting distributed applications over a network with ØMQ, using the TCP transport will likely be your first choice.

## ADDRESSING

A ØMQ 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 zmq_getsockopt(3) 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

zmq_bind(3) zmq_connect(3) zmq_pgm(7) zmq_ipc(7) zmq_inproc(7) zmq(7)

## AUTHORS

This page was written by the ØMQ community. To make a change please read the ØMQ Contribution Policy at http://www.zeromq.org/docs:contributing.