SYNOPSIS
#include <nng/transport/ipc/ipc.h>
int nng_ipc_register(void);
DESCRIPTION
The nng_ipc transport provides communication support between nng sockets within different processes on the same host. For POSIX platforms, this is implemented using UNIX domain sockets. For Windows, this is implemented using Windows Named Pipes. Other platforms may have different implementation strategies.
Registration
The ipc 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 ipc://
, followed by
a path name in the file system where the socket or named pipe
should be created.
On Windows, all names are prefixed by \.\pipe\ and do not
occupy the normal file system. On POSIX platforms, the path is
taken literally, and is relative to the current directory, unless
an extra leading / is provided. For example, ipc://myname refers
to the name myname in the current directory, whereas ipc:///tmp/myname
refers to myname located in /tmp .
|
The entire URI must be less than NNG_MAXADDRLEN
bytes long.
Socket Address
When using an nng_sockaddr
structure, the actual structure is of type
nng_sockaddr_ipc
. This is a struct
type with the following definition:
#define NNG_AF_IPC 2 (1)
#define NNG_MAXADDRLEN 128
typedef struct {
// ... (2)
uint16_t sa_family; // must be NNG_AF_IPC
char sa_path[NNG_MAXADDRLEN]; // arbitrary "path"
// ...
} nng_sockaddr_ipc;
1 | The values of these macros may change, so applications should avoid depending upon their values and instead use them symbolically. |
2 | Other members may be present, but only those listed here are suitable for application use. |
The sa_family
member will have the value NNG_AF_IPC
.
The sa_path
member is an ASCIIZ string, and may contain any legal
path name (platform-dependent), terminated by a NUL
byte.
Transport Options
The ipc transport has no special options.[1]
SEE ALSO
COPYRIGHT
Copyright 2017 Garrett D’Amore
Copyright 2017 Capitar IT Group BV
This document is supplied under the terms of the MIT License.