---
name: "modbus_set_socket"
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_set_socket"
---

# modbus\_set\_socket(3)

set socket of the context

## NAME

modbus\_set\_socket - set socket of the context

## SYNOPSIS

**int modbus\_set\_socket(modbus\_t \****ctx***, int** *s***);**

## DESCRIPTION

The **modbus\_set\_socket()** function shall set the socket or file descriptor in the libmodbus context. This function is useful for managing multiple client connections to the same server.

## RETURN VALUE

The function shall return 0 if successful. Otherwise it shall return -1 and set errno.

## EXAMPLE

```
ctx = modbus_new_tcp("127.0.0.1", 1502);
server_socket = modbus_tcp_listen(ctx, NB_CONNECTION);
FD_ZERO(&rdset);
FD_SET(server_socket, &rdset);
/* .... */
if (FD_ISSET(master_socket, &rdset)) {
    modbus_set_socket(ctx, master_socket);
    rc = modbus_receive(ctx, query);
    if (rc != -1) {
        modbus_reply(ctx, query, rc, mb_mapping);
    }
}
```

## SEE ALSO

[**modbus\_get\_socket**(3)](/modbus_get_socket/3.md)

## AUTHORS

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