socket_bind

Binds a name to a socket

&reftitle.description; `bool` `socket_bind` `Socket` `socket` `string` `address` `int` `port` 0

Binds the name given in `address` to the socket described by `socket`. This has to be done before a connection is established using `socket_connect` or `socket_listen`.

&reftitle.parameters;

`socket`

- A `Socket` instance created with `socket_create`.

`address`

- If the socket is of the `AF_INET` family, the `address` is an IP in dotted-quad notation (e.g. `127.0.0.1`).

  If the socket is of the `AF_UNIX` family, the `address` is the path of a Unix-domain socket (e.g. `/tmp/my.sock`).

`port` (Optional)

- The `port` parameter is only used when binding an `AF_INET` socket, and designates the port on which to listen for connections.

&reftitle.returnvalues;

&return.success;

The error code can be retrieved with `socket_last_error`. This code may be passed to `socket_strerror` to get a textual explanation of the error.

&reftitle.changelog;

&Version; | &Description;
&sockets.changelog.socket-param;

&reftitle.examples;

### Using `socket_bind` to set the source address

    <?php
    // Create a new socket
    $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

    // An example list of IP addresses owned by the computer
    $sourceips['kevin']    = '127.0.0.1';
    $sourceips['madcoder'] = '127.0.0.2';

    // Bind the source address
    socket_bind($sock, $sourceips['madcoder']);

    // Connect to destination address
    socket_connect($sock, '127.0.0.1', 80);

    // Write
    $request = 'GET / HTTP/1.1' . "\r\n" .
               'Host: example.com' . "\r\n\r\n";
    socket_write($sock, $request);

    // Close
    socket_close($sock);

    ?>

&reftitle.notes;

This function must be used on the socket before `socket_connect`.

Windows 9x/ME compatibility note: `socket_last_error` may return an invalid error code if trying to bind the socket to a wrong address that does not belong to your machine.

&reftitle.seealso;

- `socket_connect`
- `socket_listen`
- `socket_create`
- `socket_last_error`
- `socket_strerror`