---
name: "socket_bind6_reuse"
section: "3"
platform: "linux"
package: "libowfat-dev"
version: "0.32-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/socket_bind6_reuse"
---

# socket\_bind6\_reuse(3)

set the local IP address and port of a socket

## NAME

socket\_bind6\_reuse - set the local IP address and port of a socket

## SYNTAX

**#include \<libowfat/socket.h\>**

int **socket\_bind6\_reuse**(int *s*,char *ip*\[16\],uint16 *port*,\
                        uint32 *scope\_id*);

## DESCRIPTION

socket\_bind6\_reuse sets the local IP address and TCP/UDP port of a TCP/UDP socket *s* to *ip* and *port* respectively.

If the IP address is ::, the operating system chooses a local IP address.  If *port* is 0, the operating system chooses a port.

Normally socket\_bind6\_reuse returns 0. If anything goes wrong, socket\_bind6\_reuse returns -1, setting errno appropriately.

The *scope\_id* should normally be zero, but for link-local addresses it specifies the interface number on which to bind.  The interface number for a given network interface name can be found with **socket\_getifidx**.

Unlike socket\_bind6 this function will also tell the operating system that the address is to be reused soon, which turns off the normal pause before this IP and port can be bound again.

## EXAMPLE

  \#include \<libowfat/socket.h\>

  int *s*;\
   char *ip*\[16\];\
   uint16 *p*;

  *s* = socket\_tcp4();\
   socket\_bind6\_reuse(s,ip,p);\
   socket\_connect4(s,ip,p);

## SEE ALSO

[socket\_bind6(3)](/socket_bind6/3.md)
