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
|
---
version: tip
layout: manpage_v2
title: nng_dialer_create(3)
---
<h1>nng_dialer_create(3)</h1>
<div class="sect1">
<h2 id="_name">NAME</h2>
<div class="sectionbody">
<div class="paragraph">
<p>nng_dialer_create - create dialer</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"><nng/nng.h></span>
<span class="tok-kt">int</span><span class="tok-w"> </span><span class="tok-nf">nng_dialer_create</span><span class="tok-p">(</span><span class="tok-n">nng_dialer</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">dialerp</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-n">nng_socket</span><span class="tok-w"> </span><span class="tok-n">s</span><span class="tok-p">,</span><span class="tok-w"> </span><span class="tok-k">const</span><span class="tok-w"> </span><span class="tok-kt">char</span><span class="tok-w"> </span><span class="tok-o">*</span><span class="tok-n">url</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>The <code>nng_dialer_create()</code> function creates a newly initialized
<a href="nng_dialer.5.html"><code>nng_dialer</code></a> object, associated with socket <em>s</em>,
and configured to connect to the
address specified by <em>url</em>, and stores a pointer to at the location
referenced by <em>dialerp</em>.</p>
</div>
<div class="paragraph">
<p>Dialers initiate a remote connection to a listener.
Upon a successful
connection being established, they create a pipe, add it to the socket,
and then wait for that pipe to be closed.
When the pipe is closed, they will re-initiate the connection.
Dialers will also periodically retry a connection automatically if
an attempt to connect asynchronously
fails.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
While it is convenient to think of dialers as clients, the relationship
between the listener or dialer is orthogonal to any server or client status
that might be associated with a given protocol.
For example, a <a href="nng_req.7.html"><em>req</em></a>
socket might have associated dialers, but might also have associated listeners.
It may even have some of each at the same time!
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>The dialer is not started, but may be further configured with
the <a href="nng_dialer_setopt.3.html"><code>nng_dialer_setopt()</code></a> family of functions.</p>
</div>
<div class="paragraph">
<p>Once it is fully configured, the dialer may be started using the
<a href="nng_dialer_start.3.html"><code>nng_dialer_start()</code></a> function.</p>
</div>
<div class="admonitionblock tip">
<table>
<tr>
<td class="icon">
<i class="fa icon-tip" title="Tip"></i>
</td>
<td class="content">
If no specific configuration is required, consider using the
simpler <a href="nng_dial.3.html"><code>nng_dial()</code></a> function instead.
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_return_values">RETURN VALUES</h2>
<div class="sectionbody">
<div class="paragraph">
<p>This function returns 0 on success, and non-zero otherwise.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_errors">ERRORS</h2>
<div class="sectionbody">
<div class="hdlist">
<table>
<tr>
<td class="hdlist1">
<code>NNG_EADDRINVAL</code>
</td>
<td class="hdlist2">
<p>An invalid <em>url</em> was specified.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_ECLOSED</code>
</td>
<td class="hdlist2">
<p>The socket <em>s</em> is not open.</p>
</td>
</tr>
<tr>
<td class="hdlist1">
<code>NNG_ENOMEM</code>
</td>
<td class="hdlist2">
<p>Insufficient memory is available.</p>
</td>
</tr>
</table>
</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_dial.3.html">nng_dial(3)</a>,
<a href="nng_dialer_close.3.html">nng_dialer_close(3)</a>,
<a href="nng_dialer_getopt.3.html">nng_dialer_getopt(3)</a>,
<a href="nng_dialer_setopt.3.html">nng_dialer_setopt(3)</a>,
<a href="nng_dialer_start.3.html">nng_dialer_start(3)</a>,
<a href="nng_listener_create.3.html">nng_listener_create(3)</a>
<a href="nng_strerror.3.html">nng_strerror(3)</a>,
<a href="nng_dialer.5.html">nng_dialer(5)</a>,
<a href="nng.7.html">nng(7)</a></p>
</div>
</div>
</div>
|