---
name: "modbus_tcp_accept"
section: "3"
platform: "linux"
package: "libmodbus-dev"
version: "3.1.6-2.1"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/modbus_tcp_accept"
---

# modbus\_tcp\_accept(3)

accept a new connection on a TCP Modbus socket (IPv4)

## NAME

modbus\_tcp\_accept - accept a new connection on a TCP Modbus socket (IPv4)

## SYNOPSIS

**int modbus\_tcp\_accept(modbus\_t \****ctx***, int \*'s);**

## DESCRIPTION

The **modbus\_tcp\_accept()** function shall extract the first connection on the queue of pending connections, create a new socket and store it in libmodbus context given in argument. If available, *accept4()* with SOCK\_CLOEXEC will be called instead of **accept()**.

## RETURN VALUE

The function shall return a new socket if successful. Otherwise it shall return -1 and set errno.

## EXAMPLE

For detailed example, see unit-test-server.c source file in tests directory.

```
...
ctx = modbus_new_tcp("127.0.0.1", 502);
s = modbus_tcp_listen(ctx, 1);
modbus_tcp_accept(ctx, &s);
...
close(s)
modbus_free(ctx);
```

## SEE ALSO

[**modbus\_tcp\_pi\_accept**(3)](/modbus_tcp_pi_accept/3.md) [**modbus\_tcp\_listen**(3)](/modbus_tcp_listen/3.md) [**modbus\_tcp\_pi\_listen**(3)](/modbus_tcp_pi_listen/3.md)

## AUTHORS

The libmodbus documentation was written by Stéphane Raimbault \<stephane.raimbault@gmail.com\>
