nanomsg™ next generation NNG™  
Home GitHub Documentation

This documentation is for version 0.8.0 of nng, but the latest released version is v1.10.0. see the documentation for v1.10.0 for the most up-to-date information.
nng_tcp(7)

SYNOPSIS

#include <nng/transport/tcp/tcp.h>

int nng_tcp_register(void);

DESCRIPTION

The tcp transport provides communication support between nng sockets across a TCP/IP network. Both IPv4 and IPv6 are supported when the underlying platform also supports it.

Registration

The nng_tcp transport is generally built-in to the nng core, so no extra steps to use it should be necessary.

URI Format

This transport uses URIs using the scheme tcp://, followed by an IP address or hostname, followed by a colon and finally a TCP port number. For example, to contact port 80 on the localhost either of the following URIs could be used: tcp://127.0.0.1:80 or tcp://localhost:80.

When specifying IPv6 addresses, the address must be enclosed in square brackets ([]) to avoid confusion with the final colon separating the port.

For example, the same port 80 on the IPv6 loopback address (::1) would be specified as tcp://[::1]:80.

When using symbolic names, the name is resolved when the name is first used. nng won’t become aware of changes in the name resolution until restart, usually. (This is a bug and will likely be fixed in the future.)

The special value of 0 (INADDR_ANY) can be used for a listener to indicate that it should listen on all interfaces on the host. A short-hand for this form is to either omit the address, or specify the asterisk (*) character. For example, the following three URIs are all equivalent, and could be used to listen to port 9999 on the host:

  1. tcp://0.0.0.0:9999

  2. tcp://*:9999

  3. tcp://:9999

The entire URI must be less than NNG_MAXADDRLEN bytes long.

Socket Address

When using an nng_sockaddr structure, the actual structure is either of type nng_sockaddr_in (for IPv4) or nng_sockaddr_in6 (for IPv6).

Transport Options

The nng_tcp transport has no special options.

Options for TCP keepalive, linger, and nodelay are planned.
NNG Reference Manual v0.8.0 © 2019 Staysail Systems, Inc, © 2018 Capitar IT Group BV
This document is supplied under the MIT License.
nanomsg™ and nng™ are trademarks of Garrett D'Amore.