aboutsummaryrefslogtreecommitdiff
path: root/docs/man/nng_tcp_close.3tcp.adoc
blob: 6428501c82eb7e25862ff1593afcdf3c0d457c7b (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
= nng_tcp_close(3tcp)
//
// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
// Copyright 2018 Capitar IT Group BV <info@capitar.com>
//
// This document is supplied under the terms of the MIT License, a
// copy of which should be located in the distribution where this
// file was obtained (LICENSE.txt).  A copy of the license may also be
// found online at https://opensource.org/licenses/MIT.
//

== NAME

nng_tcp_close - close TCP connection

== SYNOPSIS

[source, c]
----
#include <nng/nng.h>
#include <nng/supplemental/tcp/tcp.h>

void nng_tcp_close(nng_tcp *conn);
----

== DESCRIPTION

The `nng_tcp_close()` function closes the supplied TCP connection, _conn_.

If any operations are pending (such as `<<nng_tcp_send.3tcp#,nng_tcp_send()>>`
or `<<nng_tcp_recv.3tcp#,nng_tcp_recv()>>` they will be terminated with
an `NNG_ECLOSED` error condition.
Also, any new operations will fail with `NNG_ECLOSED` after the connection
is closed.

NOTE: Closing the connection while data is in transmission will likely
lead to loss of that data.
There is no automatic linger or flush to ensure that the socket send buffers
have completely transmitted.

NOTE: Closing the connection does not free the resources associated with it.
Once it is certain that no more operations are pending on the connection,
it should be freed with `<<nng_tcp_free.3tcp#,nng_tcp_free()>>`.

== RETURN VALUES

None.

== ERRORS

None.

== SEE ALSO

[.text-left]
<<nng_strerror.3#,nng_strerror(3)>>,
<<nng_tcp_free.3tcp#,nng_tcp_free(3tcp)>>,
<<nng_tcp_recv.3tcp#,nng_tcp_recv(3tcp)>>,
<<nng_tcp_send.3tcp#,nng_tcp_send(3tcp)>>,
<<nng_tcp.5#,nng_tcp(5)>>