summaryrefslogtreecommitdiff
path: root/man/tip/nng_sockaddr.5.html
blob: 37e95f53567669c6a335f4bd27bf3701ee9a78dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
---
version: tip
layout: manpage_v2
title: nng_sockaddr(5)
---
<h1>nng_sockaddr(5)</h1>
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph">
<p>nng_sockaddr - socket address</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="listingblock">
<div class="content">
<pre class="pygments highlight"><code data-lang="c"><span></span><span class="tok-cp">#include</span><span class="tok-w"> </span><span class="tok-cpf">&lt;nng/nng.h&gt;</span>

<span class="tok-k">typedef</span><span class="tok-w"> </span><span class="tok-k">union</span><span class="tok-w"> </span><span class="tok-nc">nng_sockaddr</span><span class="tok-w"> </span><span class="tok-p">{</span>
<span class="tok-w">    </span><span class="tok-kt">uint16_t</span><span class="tok-w">              </span><span class="tok-n">s_family</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_ipc</span><span class="tok-w">      </span><span class="tok-n">s_ipc</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_inproc</span><span class="tok-w">   </span><span class="tok-n">s_inproc</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_in</span><span class="tok-w">       </span><span class="tok-n">s_in</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_in6</span><span class="tok-w">      </span><span class="tok-n">s_in6</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_zt</span><span class="tok-w">       </span><span class="tok-n">s_zt</span><span class="tok-p">;</span>
<span class="tok-w">    </span><span class="tok-n">nng_sockaddr_abstract</span><span class="tok-w"> </span><span class="tok-n">s_abstract</span><span class="tok-p">;</span>
<span class="tok-p">}</span><span class="tok-w"> </span><span class="tok-n">nng_sockaddr</span><span class="tok-p">;</span>

<span class="tok-k">enum</span><span class="tok-w"> </span><span class="tok-n">sockaddr_family</span><span class="tok-w"> </span><span class="tok-p">{</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_UNSPEC</span><span class="tok-w">   </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">0</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_INPROC</span><span class="tok-w">   </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">1</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_IPC</span><span class="tok-w">      </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">2</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_INET</span><span class="tok-w">     </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">3</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_INET6</span><span class="tok-w">    </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">4</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_ZT</span><span class="tok-w">       </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">5</span><span class="tok-p">,</span>
<span class="tok-w">    </span><span class="tok-n">NNG_AF_ABSTRACT</span><span class="tok-w"> </span><span class="tok-o">=</span><span class="tok-w"> </span><span class="tok-mi">6</span>
<span class="tok-p">};</span></code></pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph">
<p>
An <code>nng_sockaddr</code> is a structure used for
representing the addresses used by underlying transports, such as TCP/IP
addresses, IPC paths, and so forth.</p>
</div>
<div class="sidebarblock">
<div class="content">
<div class="paragraph">
<p>The name <code>sockaddr</code> is based on its similarity with POSIX <code>struct sockaddr</code>,
but in <em>NNG</em>, these addresses are more closely affiliated with
instances of <a href="nng_pipe.5.html"><code>nng_pipe</code></a>
than of <a href="nng_socket.5.html"><code>nng_socket</code></a>.
The naming confusion is unfortunate.</p>
</div>
</div>
</div>
<div class="paragraph">
<p>This structure is actually a union, with different members for different
types of addresses.</p>
</div>
<div class="paragraph">
<p>Every member structure has as its first element a <code>uint16_t</code> field
containing the address family.
This overlaps the <code>s_family</code> member of the union, and indicates which
specific member should be used.</p>
</div>
<div class="paragraph">
<p>The values of <code>s_family</code> are as follows:</p>
</div>
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<code>NNG_AF_UNSPEC</code>
</td>
<td class="hdlist2">
<p>Invalid address, no other valid fields.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_INPROC</code>
</td>
<td class="hdlist2">
<p>Address for intraprocess communication (<a href="nng_inproc.7.html">nng_inproc(7)</a>).  The <code>s_inproc</code> member is valid.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_IPC</code>
</td>
<td class="hdlist2">
<p>Address for interprocess communication (<a href="nng_ipc.7.html">nng_ipc(7)</a>).  The <code>s_path</code> member is valid.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_INET</code>
</td>
<td class="hdlist2">
<p>Address for TCP/IP (v4) communication.  The <code>s_in</code> member is valid.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_INET6</code>
</td>
<td class="hdlist2">
<p>Address for TCP/IP (v6) communication.  The <code>s_in6</code> member is valid.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_ZT</code>
</td>
<td class="hdlist2">
<p>Address for ZeroTier transport (<a href="nng_zerotier.7.html">nng_zerotier(7)</a>).  The <code>s_zt</code> member is valid.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_AF_ABSTRACT</code>
</td>
<td class="hdlist2">
<p>Address for an abstract UNIX domain socket.  The <code>s_abstract</code> member is valid.</p>
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Please see the manual pages for each individual type for more information.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_see_also">SEE ALSO</h2>
<div class="sectionbody">
<div class="paragraph text-left">
<p><a href="nng_sockaddr_abstract.5.html">nng_sockaddr_abstract(5)</a>,
<a href="nng_sockaddr_in.5.html">nng_sockaddr_in(5)</a>,
<a href="nng_sockaddr_in6.5.html">nng_sockaddr_in6(5)</a>,
<a href="nng_sockaddr_inproc.5.html">nng_sockaddr_inproc(5)</a>,
<a href="nng_sockaddr_ipc.5.html">nng_sockaddr_ipc(5)</a>,
<a href="nng_sockaddr_zt.5.html">nng_sockaddr_zt(5)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>